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.DiscardingReason; import org.openlmis.ivdform.service.DiscardingReasonsService; import org.springframework.http.ResponseEntity; import java.util.List; import static java.util.Arrays.asList; import static org.hamcrest.Matchers.is; import static org.junit.Assert.assertThat; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @Category(UnitTests.class) @RunWith(MockitoJUnitRunner.class) public class DiscardingReasonsControllerTest { @Mock DiscardingReasonsService service; @InjectMocks DiscardingReasonsController controller; @Test public void shouldGetAll() throws Exception { controller.getAll(); verify(service).getAllReasons(); } @Test public void shouldGetDataFromGetAll() { List<DiscardingReason> reasons = asList(new DiscardingReason()); when(service.getAllReasons()).thenReturn(reasons); ResponseEntity<OpenLmisResponse> response = controller.getAll(); assertThat(reasons, is(response.getBody().getData().get("reasons"))); } }