use of org.motechproject.mots.domain.District in project mots by motech-implementations.
the class DistrictRepositoryIntegrationTest method shouldFindDistrictByName.
@Test
public void shouldFindDistrictByName() {
// when
Page<District> result = districtRepository.search(district1.getName(), null);
// then
assertThat(result.getTotalElements(), is(1L));
District foundDistrict = result.getContent().get(0);
assertThat(foundDistrict.getName(), is(district1.getName()));
}
use of org.motechproject.mots.domain.District in project mots by motech-implementations.
the class LocationImporter method parseDistricts.
private void parseDistricts(XSSFSheet sheet) {
XSSFRow row;
XSSFCell cell;
Iterator rows = sheet.rowIterator();
HashSet<District> newDistrictSet = new HashSet<>();
while (rows.hasNext()) {
row = (XSSFRow) rows.next();
cell = row.getCell(DISTRICT_COL_NUMBER);
if (cell == null) {
continue;
}
String cellText = cell.getStringCellValue();
if (cellText.equals(DISTRICT_HEADER) || StringUtils.isEmpty(cellText)) {
continue;
}
District district = new District(cellText);
newDistrictSet.add(district);
}
newDistrictSet.forEach(newDistrict -> {
if (!currentDistrictList.contains(newDistrict)) {
locationService.createDistrict(newDistrict);
}
});
}
use of org.motechproject.mots.domain.District in project mots by motech-implementations.
the class DistrictRepositoryImpl method prepareQuery.
private <T> CriteriaQuery<T> prepareQuery(CriteriaQuery<T> query, String districtName, boolean count, Pageable pageable) throws IllegalArgumentException {
CriteriaBuilder builder = entityManager.getCriteriaBuilder();
Root<District> root = query.from(District.class);
if (count) {
CriteriaQuery<Long> countQuery = (CriteriaQuery<Long>) query;
query = (CriteriaQuery<T>) countQuery.select(builder.count(root));
}
Predicate predicate = builder.conjunction();
if (districtName != null) {
predicate = builder.and(predicate, builder.like(root.get(NAME), '%' + districtName + '%'));
}
query.where(predicate);
if (!count && pageable != null && pageable.getSort() != null) {
query = addSortProperties(query, root, pageable);
}
return query;
}
use of org.motechproject.mots.domain.District in project mots by motech-implementations.
the class DistrictRepositoryImpl method search.
/**
* Finds Districts matching all of the provided parameters.
* If there are no parameters, return all Districts.
*/
@Override
public Page<District> search(String districtName, Pageable pageable) throws IllegalArgumentException {
CriteriaBuilder builder = entityManager.getCriteriaBuilder();
CriteriaQuery<District> query = builder.createQuery(District.class);
query = prepareQuery(query, districtName, false, pageable);
CriteriaQuery<Long> countQuery = builder.createQuery(Long.class);
countQuery = prepareQuery(countQuery, districtName, true, pageable);
Long count = entityManager.createQuery(countQuery).getSingleResult();
int pageSize = getPageSize(pageable);
int firstResult = getFirstResult(pageable, pageSize);
List<District> incharges = entityManager.createQuery(query).setMaxResults(pageSize).setFirstResult(firstResult).getResultList();
return new PageImpl<>(incharges, pageable, count);
}
use of org.motechproject.mots.domain.District 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)));
}
Aggregations