package com.nicusa.converter;
import com.nicusa.controller.DrugController;
import com.nicusa.domain.Drug;
import com.nicusa.resource.DrugResource;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.persistence.EntityManager;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.nullValue;
import static org.junit.Assert.*;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.when;
import static org.springframework.hateoas.mvc.ControllerLinkBuilder.linkTo;
import static org.springframework.hateoas.mvc.ControllerLinkBuilder.methodOn;
@RunWith(MockitoJUnitRunner.class)
public class DrugResourceToDomainConverterTest {
@Mock
private EntityManager entityManager;
@InjectMocks
private DrugResourceToDomainConverter drugResourceToDomainConverter;
@Test
public void testConvertNewEntity() throws Exception {
RequestContextHolder.setRequestAttributes(new ServletRequestAttributes(new MockHttpServletRequest()));
DrugResourceToDomainConverter drugResourceToDomainConverter = new DrugResourceToDomainConverter();
DrugResource drugResource = new DrugResource();
drugResource.setName("unikitty");
drugResource.setUnii("6M3C89ZY6R");
Drug drug = drugResourceToDomainConverter.convert(drugResource);
assertThat(drugResource.getName(), is(drug.getName()));
assertThat(drugResource.getUnii(), is(drug.getUnii()));
}
@Test
public void testConvertExistingEntity() {
Drug persistedDrug = new Drug();
persistedDrug.setId(1L);
when(entityManager.find(Drug.class, 1L)).thenReturn(persistedDrug);
RequestContextHolder.setRequestAttributes(new ServletRequestAttributes(new MockHttpServletRequest()));
DrugResource drugResource = new DrugResource();
drugResource.setId(1L);
drugResource.setName("unikitty");
drugResource.setUnii("6M3C89ZY6R");
drugResource.getLinks().put("self", linkTo(methodOn(DrugController.class).get(1L)).withRel("self").getHref());
Drug drug = drugResourceToDomainConverter.convert(drugResource);
assertThat(drugResource.getName(), is(drug.getName()));
assertThat(drug.getId(), is(1L));
}
}