Search in sources :

Example 1 with AssignedModulesRepository

use of org.motechproject.mots.repository.AssignedModulesRepository in project mots by motech-implementations.

the class ModuleAssignmentServiceTest method shouldAssignModulesToDistrict.

@Test
public void shouldAssignModulesToDistrict() throws Exception {
    when(userService.getUserByUserName(eq(user.getUsername()))).thenReturn(user);
    when(communityHealthWorkerRepository.findByCommunityFacilityChiefdomDistrictIdAndSelected(any(), any())).thenReturn(Collections.singletonList(CHW));
    moduleAssignmentService.assignModulesToDistrict(districtAssignmentDto);
    ArgumentCaptor<DistrictAssignmentLog> districtAssignmentLogCaptor = ArgumentCaptor.forClass(DistrictAssignmentLog.class);
    verify(districtAssignmentLogRepository, times(2)).save(districtAssignmentLogCaptor.capture());
    List<DistrictAssignmentLog> districtAssignmentLogs = districtAssignmentLogCaptor.getAllValues();
    final Set<Module> passedModules = new HashSet<>(Arrays.asList(MODULE_2, MODULE_3));
    assertTrue(districtAssignmentLogs.stream().allMatch(l -> passedModules.contains(l.getModule())));
    for (DistrictAssignmentLog log : districtAssignmentLogs) {
        assertEquals(DISTRICT, log.getDistrict());
        assertEquals(districtAssignmentDto.getStartDate(), log.getStartDate().toString());
        assertEquals(districtAssignmentDto.getEndDate(), log.getEndDate().toString());
        assertEquals(user, log.getOwner());
    }
    ArgumentCaptor<AssignedModules> assignedModulesCaptor = ArgumentCaptor.forClass(AssignedModules.class);
    verify(assignedModulesRepository).save(assignedModulesCaptor.capture());
    final Set<Module> allModules = new HashSet<>(Arrays.asList(MODULE_1, MODULE_2, MODULE_3));
    assertEquals(allModules, assignedModulesCaptor.getValue().getModules());
    verify(ivrService).addSubscriberToGroups(eq(CHW.getIvrId()), eq(Collections.singletonList(IVR_GROUP)));
    verify(moduleProgressService).createModuleProgresses(any(), eq(Collections.singleton(MODULE_3)));
}
Also used : Arrays(java.util.Arrays) DistrictAssignmentLogRepository(org.motechproject.mots.repository.DistrictAssignmentLogRepository) ModuleProgress(org.motechproject.mots.domain.ModuleProgress) CommunityHealthWorkerRepository(org.motechproject.mots.repository.CommunityHealthWorkerRepository) Mockito.doThrow(org.mockito.Mockito.doThrow) ModuleAssignmentException(org.motechproject.mots.exception.ModuleAssignmentException) AssignedModules(org.motechproject.mots.domain.AssignedModules) Matchers.eq(org.mockito.Matchers.eq) DistrictAssignmentLog(org.motechproject.mots.domain.DistrictAssignmentLog) DistrictAssignmentDtoDataBuilder(org.motechproject.mots.testbuilder.DistrictAssignmentDtoDataBuilder) EntityNotFoundException(org.motechproject.mots.exception.EntityNotFoundException) DistrictAssignmentDto(org.motechproject.mots.dto.DistrictAssignmentDto) SecurityContextHolder(org.springframework.security.core.context.SecurityContextHolder) AssignedModulesDataBuilder(org.motechproject.mots.testbuilder.AssignedModulesDataBuilder) MotsException(org.motechproject.mots.exception.MotsException) Set(java.util.Set) UUID(java.util.UUID) Matchers.any(org.mockito.Matchers.any) List(java.util.List) District(org.motechproject.mots.domain.District) Optional(java.util.Optional) User(org.motechproject.mots.domain.security.User) ModuleDataBuilder(org.motechproject.mots.testbuilder.ModuleDataBuilder) Mock(org.mockito.Mock) RunWith(org.junit.runner.RunWith) ProgressStatus(org.motechproject.mots.domain.enums.ProgressStatus) CommunityHealthWorkerDataBuilder(org.motechproject.mots.testbuilder.CommunityHealthWorkerDataBuilder) CommunityHealthWorker(org.motechproject.mots.domain.CommunityHealthWorker) HashSet(java.util.HashSet) IvrException(org.motechproject.mots.exception.IvrException) ArgumentCaptor(org.mockito.ArgumentCaptor) PrepareForTest(org.powermock.core.classloader.annotations.PrepareForTest) Module(org.motechproject.mots.domain.Module) ModuleProgressDataBuilder(org.motechproject.mots.testbuilder.ModuleProgressDataBuilder) PowerMockRunner(org.powermock.modules.junit4.PowerMockRunner) Before(org.junit.Before) InjectMocks(org.mockito.InjectMocks) ModuleRepository(org.motechproject.mots.repository.ModuleRepository) DistrictDataBuilder(org.motechproject.mots.testbuilder.DistrictDataBuilder) Assert.assertTrue(org.junit.Assert.assertTrue) Mockito.times(org.mockito.Mockito.times) Test(org.junit.Test) Mockito.when(org.mockito.Mockito.when) EntityManager(javax.persistence.EntityManager) Mockito.verify(org.mockito.Mockito.verify) AssignedModulesRepository(org.motechproject.mots.repository.AssignedModulesRepository) Collections(java.util.Collections) DistrictRepository(org.motechproject.mots.repository.DistrictRepository) Assert.assertEquals(org.junit.Assert.assertEquals) TestUtils(org.motechproject.mots.utils.TestUtils) AssignedModules(org.motechproject.mots.domain.AssignedModules) DistrictAssignmentLog(org.motechproject.mots.domain.DistrictAssignmentLog) Module(org.motechproject.mots.domain.Module) HashSet(java.util.HashSet) PrepareForTest(org.powermock.core.classloader.annotations.PrepareForTest) Test(org.junit.Test)

Aggregations

Arrays (java.util.Arrays)1 Collections (java.util.Collections)1 HashSet (java.util.HashSet)1 List (java.util.List)1 Optional (java.util.Optional)1 Set (java.util.Set)1 UUID (java.util.UUID)1 EntityManager (javax.persistence.EntityManager)1 Assert.assertEquals (org.junit.Assert.assertEquals)1 Assert.assertTrue (org.junit.Assert.assertTrue)1 Before (org.junit.Before)1 Test (org.junit.Test)1 RunWith (org.junit.runner.RunWith)1 ArgumentCaptor (org.mockito.ArgumentCaptor)1 InjectMocks (org.mockito.InjectMocks)1 Matchers.any (org.mockito.Matchers.any)1 Matchers.eq (org.mockito.Matchers.eq)1 Mock (org.mockito.Mock)1 Mockito.doThrow (org.mockito.Mockito.doThrow)1 Mockito.times (org.mockito.Mockito.times)1