package com.nicusa.converter;
import com.nicusa.controller.DrugController;
import com.nicusa.domain.Drug;
import com.nicusa.domain.Portfolio;
import com.nicusa.resource.DrugResource;
import com.nicusa.resource.PortfolioResource;
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.beans.factory.annotation.Autowired;
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.not;
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 PortfolioResourceToDomainConverterTest {
@Mock
private EntityManager entityManager;
@Mock
private DrugResourceToDomainConverter drugResourceToDomainConverter;
@InjectMocks
private PortfolioResourceToDomainConverter portfolioResourceToDomainConverter;
@Test
public void testConvert() {
RequestContextHolder.setRequestAttributes(new ServletRequestAttributes(new MockHttpServletRequest()));
Portfolio persistedPortfolio = new Portfolio();
when(entityManager.find(Portfolio.class, 1L)).thenReturn(persistedPortfolio);
PortfolioResource portfolioResource = new PortfolioResource();
portfolioResource.setId(1L);
Portfolio portfolio = portfolioResourceToDomainConverter.convert(portfolioResource);
assertThat(portfolio, is(not(nullValue())));
}
@Test
public void testConvertWithDrugs() {
RequestContextHolder.setRequestAttributes(new ServletRequestAttributes(new MockHttpServletRequest()));
Portfolio persistedPortfolio = new Portfolio();
Drug drug = new Drug();
when(entityManager.find(Portfolio.class, 1L)).thenReturn(persistedPortfolio);
when(drugResourceToDomainConverter.convert(any(DrugResource.class))).thenReturn(drug);
DrugResource drugResource = new DrugResource();
drugResource.setId(1L);
PortfolioResource portfolioResource = new PortfolioResource();
portfolioResource.setId(1L);
portfolioResource.getDrugResources().add(drugResource);
Portfolio portfolio = portfolioResourceToDomainConverter.convert(portfolioResource);
assertThat(portfolio, is(not(nullValue())));
}
}