package com.nicusa.assembler; import com.nicusa.domain.Drug; import com.nicusa.domain.Portfolio; import com.nicusa.resource.DrugResource; import com.nicusa.resource.PortfolioResource; import junit.framework.TestCase; 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.hateoas.Link; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import java.util.ArrayList; import java.util.Collection; import java.util.List; import static org.hamcrest.CoreMatchers.instanceOf; import static org.hamcrest.Matchers.is; import static org.junit.Assert.assertThat; import static org.mockito.Mockito.when; @RunWith(MockitoJUnitRunner.class) public class PortfolioAssemblerTest { @InjectMocks private PortfolioAssembler portfolioAssembler; @Mock private DrugAssembler drugAssembler; @Test public void testToResource() throws Exception { RequestContextHolder.setRequestAttributes(new ServletRequestAttributes(new MockHttpServletRequest())); Drug drug1 = new Drug(); drug1.setId(1L); drug1.setName("name"); Drug drug2 = new Drug(); drug2.setId(2L); drug2.setName("name2"); Collection<Drug> drugs = new ArrayList<>(); drugs.add(drug1); drugs.add(drug2); Portfolio portfolio = new Portfolio(); portfolio.setId(1L); portfolio.setDrugs(drugs); DrugResource drugResource1 = new DrugResource(); DrugResource drugResource2 = new DrugResource(); when(drugAssembler.toResource(drug1)).thenReturn(drugResource1); when(drugAssembler.toResource(drug2)).thenReturn(drugResource2); PortfolioResource portfolioResource = portfolioAssembler.toResource(portfolio); Integer linkCount = 0; assertThat(portfolioResource.getDrugResources().size(), is(2)); } }