package org.openlmis.ivdform.controller; import org.junit.Test; import org.junit.experimental.categories.Category; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import org.openlmis.core.web.OpenLmisResponse; import org.openlmis.db.categories.UnitTests; import org.openlmis.ivdform.domain.reports.LogisticsColumn; import org.openlmis.ivdform.dto.ProgramColumnTemplateDTO; import org.openlmis.ivdform.service.LogisticsColumnTemplateService; import org.springframework.http.ResponseEntity; import java.util.List; import static java.util.Arrays.asList; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.is; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.when; @Category(UnitTests.class) @RunWith(MockitoJUnitRunner.class) public class LogisticsColumnTemplateControllerTest { @Mock LogisticsColumnTemplateService service; @InjectMocks LogisticsColumnTemplateController controller; @Test public void shouldGet() throws Exception { ProgramColumnTemplateDTO dto = new ProgramColumnTemplateDTO(); List<LogisticsColumn> columns = asList(new LogisticsColumn()); dto.setColumns(columns); when(service.getTemplate(1L)).thenReturn(dto); ResponseEntity<OpenLmisResponse> response = controller.get(1L); assertThat(dto, is(response.getBody().getData().get("columns"))); } @Test public void shouldSave() throws Exception { List<LogisticsColumn> columns = asList(new LogisticsColumn()); ProgramColumnTemplateDTO dto = new ProgramColumnTemplateDTO(); dto.setColumns(columns); dto.setProgramId(1L); when(service.getTemplate(1L)).thenReturn(dto); doNothing().when(service).saveChanges(columns); ResponseEntity<OpenLmisResponse> response = controller.save(dto); assertThat(dto, is(response.getBody().getData().get("columns"))); } }