package gov.samhsa.consent2share.web.controller; import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.when; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.model; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.view; import gov.samhsa.consent2share.common.AuthenticatedUser; import gov.samhsa.consent2share.common.UserContext; import gov.samhsa.consent2share.service.audit.AuditService; import gov.samhsa.consent2share.service.dto.HistoryDto; import gov.samhsa.consent2share.web.controller.AuditTrailController; import java.util.ArrayList; import java.util.List; import org.junit.Before; 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.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.setup.MockMvcBuilders; @RunWith(MockitoJUnitRunner.class) public class AuditTrailControllerTest { @InjectMocks AuditTrailController auditTrailController = new AuditTrailController(); @Mock AuditService patientAuditService; @Mock UserContext userContext; @Before public void setUp() throws Exception { AuthenticatedUser user = mock(AuthenticatedUser.class); when(userContext.getCurrentUser()).thenReturn(user); when(user.getUsername()).thenReturn("mockedUser"); } @Test public void testActivityHistory() throws Exception { MockMvc mockMvc = MockMvcBuilders.standaloneSetup( this.auditTrailController).build(); List<HistoryDto> historyListDtos = new ArrayList<HistoryDto>(); for (int i = 0; i < 3; i++) { historyListDtos.add(mock(HistoryDto.class)); } List<HistoryDto> spyHistoryListDtoss = spy(historyListDtos); when(patientAuditService.findAllHistory(anyString())).thenReturn( spyHistoryListDtoss); mockMvc.perform(get("/patients/activityHistory.html")) .andExpect(status().isOk()) .andExpect(model().attribute("historys", historyListDtos)) .andExpect(view().name("views/patients/activityHistory")); } }