use of de.symeda.sormas.backend.TestDataCreator.RDCF in project SORMAS-Project by hzi-braunschweig.
the class CaseStatisticsFacadeEjbTest method testQueryCaseCountZeroValues.
@Test
public void testQueryCaseCountZeroValues() {
RDCF rdcf = creator.createRDCF("Region", "District", "Community", "Facility");
UserDto user = creator.createUser(rdcf.region.getUuid(), rdcf.district.getUuid(), rdcf.facility.getUuid(), "Surv", "Sup", UserRole.SURVEILLANCE_SUPERVISOR);
PersonDto cazePerson = creator.createPerson("Case", "Person");
cazePerson.setApproximateAge(30);
cazePerson.setApproximateAgeReferenceDate(new Date());
cazePerson.setApproximateAgeType(ApproximateAgeType.YEARS);
cazePerson = getPersonFacade().savePerson(cazePerson);
CaseDataDto caze = creator.createCase(user.toReference(), cazePerson.toReference(), Disease.EVD, CaseClassification.PROBABLE, InvestigationStatus.PENDING, new Date(), rdcf);
caze = getCaseFacade().getCaseDataByUuid(caze.getUuid());
StatisticsCaseCriteria criteria = new StatisticsCaseCriteria();
int year = DateHelper8.toLocalDate(caze.getSymptoms().getOnsetDate()).getYear();
criteria.years(Arrays.asList(new Year(year), new Year(year + 1)), StatisticsCaseAttribute.ONSET_TIME);
criteria.regions(Arrays.asList(new RegionReferenceDto(rdcf.region.getUuid(), null, null)));
criteria.addAgeIntervals(Arrays.asList(new IntegerRange(10, 40)));
List<StatisticsCaseCountDto> results = getCaseStatisticsFacade().queryCaseCount(criteria, StatisticsCaseAttribute.SEX, null, null, null, false, true, null);
// List should have one entry per sex
assertEquals(Sex.values().length, results.size());
}
use of de.symeda.sormas.backend.TestDataCreator.RDCF in project SORMAS-Project by hzi-braunschweig.
the class FacilityFacadeEjbTest method testGetAllByRegionAfter.
@Test
public void testGetAllByRegionAfter() throws InterruptedException {
RDCF rdcf = creator.createRDCF();
getFacilityService().doFlush();
Date date = new Date();
List<FacilityDto> results = getFacilityFacade().getAllByRegionAfter(rdcf.region.getUuid(), date);
// List should be empty
assertEquals(0, results.size());
// delay to ignore known rounding issues in change date filter
Thread.sleep(1);
String facilityName = "facility2";
creator.createFacility(facilityName, rdcf.region, rdcf.district, rdcf.community);
results = getFacilityFacade().getAllByRegionAfter(rdcf.region.getUuid(), date);
// List should have one entry
assertEquals(1, results.size());
assertEquals(facilityName, results.get(0).getName());
assertEquals(rdcf.community.getUuid(), results.get(0).getCommunity().getUuid());
assertEquals(rdcf.region.getUuid(), results.get(0).getRegion().getUuid());
}
use of de.symeda.sormas.backend.TestDataCreator.RDCF in project SORMAS-Project by hzi-braunschweig.
the class PersonFacadeEjbTest method testGetPersonsAfter.
@Test
public void testGetPersonsAfter() throws InterruptedException {
UserDto natUser = useNationalUserLogin();
Date t1 = new Date();
PersonDto person1 = creator.createPerson();
person1 = getPersonFacade().savePerson(person1);
final ContactDto contact1 = creator.createContact(natUser.toReference(), person1.toReference());
getContactFacade().save(contact1);
List<PersonDto> personsAfterT1 = getPersonFacade().getPersonsAfter(t1);
assertEquals(1, personsAfterT1.size());
assertEquals(person1.getUuid(), personsAfterT1.get(0).getUuid());
Date t2 = new Date();
PersonDto person2 = creator.createPerson();
person2 = getPersonFacade().savePerson(person2);
final ContactDto contact2 = creator.createContact(natUser.toReference(), person2.toReference());
getContactFacade().save(contact2);
List<PersonDto> personsAfterT2 = getPersonFacade().getPersonsAfter(t2);
assertEquals(1, personsAfterT2.size());
assertEquals(person2.getUuid(), personsAfterT2.get(0).getUuid());
personsAfterT1 = getPersonFacade().getPersonsAfter(t1);
assertEquals(2, personsAfterT1.size());
PersonDto person3 = creator.createPerson();
person3 = getPersonFacade().savePerson(person3);
RDCF rdcf = creator.createRDCF("region", "district", "community", "facility", "pointOfEntry");
TravelEntryDto travelEntry = creator.createTravelEntry(person3.toReference(), natUser.toReference(), Disease.CORONAVIRUS, rdcf.region, rdcf.district, rdcf.pointOfEntry);
getTravelEntryFacade().save(travelEntry);
personsAfterT1 = getPersonFacade().getPersonsAfter(t1);
assertEquals(3, personsAfterT1.size());
personsAfterT1 = getPersonFacade().getPersonsAfter(t1, 4, EntityDto.NO_LAST_SYNCED_UUID);
assertEquals(2, personsAfterT1.size());
PersonDto personRead1 = personsAfterT1.get(0);
PersonDto personRead2 = personsAfterT1.get(1);
personsAfterT1 = getPersonFacade().getPersonsAfter(t1, 1, EntityDto.NO_LAST_SYNCED_UUID);
assertEquals(1, personsAfterT1.size());
personsAfterT1 = getPersonFacade().getPersonsAfter(personRead1.getChangeDate(), 4, null);
assertEquals(1, personsAfterT1.size());
personsAfterT1 = getPersonFacade().getPersonsAfter(personRead1.getChangeDate(), 4, EntityDto.NO_LAST_SYNCED_UUID);
assertEquals(1, personsAfterT1.size());
personsAfterT1 = getPersonFacade().getPersonsAfter(personRead2.getChangeDate(), 4, null);
assertEquals(0, personsAfterT1.size());
personsAfterT1 = getPersonFacade().getPersonsAfter(personRead2.getChangeDate(), 4, EntityDto.NO_LAST_SYNCED_UUID);
assertEquals(0, personsAfterT1.size());
personsAfterT1 = getPersonFacade().getPersonsAfter(new Date(personRead2.getChangeDate().getTime() - 1L), 4, EntityDto.NO_LAST_SYNCED_UUID);
assertEquals(1, personsAfterT1.size());
personsAfterT1 = getPersonFacade().getPersonsAfter(personRead2.getChangeDate(), 4, "AAAAAA-AAAAAA-AAAAAA-AAAAAA");
assertEquals(1, personsAfterT1.size());
personsAfterT1 = getPersonFacade().getPersonsAfter(personRead2.getChangeDate(), 4, "ZZZZZZ-ZZZZZZ-ZZZZZZ-ZZZZZZ");
assertEquals(0, personsAfterT1.size());
personsAfterT1 = getPersonFacade().getPersonsAfter(personRead2.getChangeDate(), 4, personRead2.getUuid());
assertEquals(0, personsAfterT1.size());
}
use of de.symeda.sormas.backend.TestDataCreator.RDCF in project SORMAS-Project by hzi-braunschweig.
the class PersonFacadeEjbTest method testGetExportList.
@Test
public void testGetExportList() {
RDCF rdcf = creator.createRDCF();
UserDto user = creator.createUser(rdcf, UserRole.REST_EXTERNAL_VISITS_USER);
PersonDto casePerson = creator.createPerson("Test Fname", "Test Lname", p -> {
p.setBirthdateYYYY(1999);
p.setBirthdateMM(3);
p.setBirthdateDD(28);
p.setPresentCondition(PresentCondition.ALIVE);
p.setSex(Sex.UNKNOWN);
p.setNickname("TestNick");
p.getAddress().setRegion(rdcf.region);
p.getAddress().setDistrict(rdcf.district);
p.getAddress().setFacility(rdcf.facility);
p.getAddress().setCity("Test city");
p.setPersonContactDetails(Arrays.asList(PersonContactDetailDto.build(p.toReference(), true, PersonContactDetailType.PHONE, PhoneNumberType.MOBILE, null, "12345678", "Test additional info", false, null, null), PersonContactDetailDto.build(p.toReference(), true, PersonContactDetailType.EMAIL, null, null, "test@email.com", "Test additional info", false, null, null)));
});
creator.createCase(user.toReference(), casePerson.toReference(), rdcf);
PersonDto contactPerson = creator.createPerson();
creator.createContact(user.toReference(), user.toReference(), contactPerson.toReference(), null, new Date(), new Date(), Disease.EVD, rdcf);
List<PersonExportDto> casePersonExport = getPersonFacade().getExportList(new PersonCriteria(), 0, 100);
assertThat(casePersonExport, hasSize(2));
PersonExportDto exportedCasePerson = casePersonExport.stream().filter(p -> p.getUuid().equals(casePerson.getUuid())).findFirst().get();
assertThat(exportedCasePerson.getUuid(), is(casePerson.getUuid()));
assertThat(exportedCasePerson.getFirstName(), is(casePerson.getFirstName()));
assertThat(exportedCasePerson.getLastName(), is(casePerson.getLastName()));
assertThat(exportedCasePerson.getBirthdate().getDateOfBirthYYYY(), is(casePerson.getBirthdateYYYY()));
assertThat(exportedCasePerson.getBirthdate().getDateOfBirthMM(), is(casePerson.getBirthdateMM()));
assertThat(exportedCasePerson.getBirthdate().getDateOfBirthDD(), is(casePerson.getBirthdateDD()));
assertThat(exportedCasePerson.getPresentCondition(), is(casePerson.getPresentCondition()));
assertThat(exportedCasePerson.getSex(), is(casePerson.getSex()));
assertThat(exportedCasePerson.getNickname(), is(casePerson.getNickname()));
assertThat(exportedCasePerson.getRegion(), is(casePerson.getAddress().getRegion().getCaption()));
assertThat(exportedCasePerson.getDistrict(), is(casePerson.getAddress().getDistrict().getCaption()));
assertThat(exportedCasePerson.getFacility(), is(casePerson.getAddress().getFacility().getCaption()));
assertThat(exportedCasePerson.getCity(), is(casePerson.getAddress().getCity()));
assertThat(exportedCasePerson.getPhone(), is(casePerson.getPhone()));
assertThat(exportedCasePerson.getEmailAddress(), is(casePerson.getEmailAddress()));
// only contact persons
List<PersonExportDto> contactPersonExport = getPersonFacade().getExportList(new PersonCriteria().personAssociation(PersonAssociation.CONTACT), 0, 100);
assertThat(contactPersonExport, hasSize(1));
assertThat(contactPersonExport.get(0).getUuid(), is(contactPerson.getUuid()));
// filter by name
PersonCriteria nameCriteria = new PersonCriteria();
nameCriteria.setNameAddressPhoneEmailLike("Test Fname");
List<PersonExportDto> exportByName = getPersonFacade().getExportList(nameCriteria, 0, 100);
assertThat(exportByName, hasSize(1));
assertThat(exportByName.get(0).getUuid(), is(casePerson.getUuid()));
}
use of de.symeda.sormas.backend.TestDataCreator.RDCF in project SORMAS-Project by hzi-braunschweig.
the class PersonFacadeEjbTest method testUserWithLimitedDiseaseSeeOnlyLimitedTravelEntry.
@Test
public void testUserWithLimitedDiseaseSeeOnlyLimitedTravelEntry() {
RDCF rdcf = creator.createRDCF("Region", "District", "Community", "Facility", "PointOfEntry");
PersonCriteria criteria = new PersonCriteria();
criteria.setPersonAssociation(PersonAssociation.TRAVEL_ENTRY);
UserDto natUser = useNationalUserLogin();
// CORONAVIRUS Travel Entry
PersonDto personWithCorona = creator.createPerson("Person Coronavirus", "Test");
creator.createTravelEntry(personWithCorona.toReference(), natUser.toReference(), Disease.CORONAVIRUS, rdcf.region, rdcf.district, rdcf.pointOfEntry);
// DENGUE Travel Entry
PersonDto personWithDengue = creator.createPerson("Person Dengue", "Test");
creator.createTravelEntry(personWithDengue.toReference(), natUser.toReference(), Disease.DENGUE, rdcf.region, rdcf.district, rdcf.pointOfEntry);
// National User with no restrictions can see all the travel entries
List<PersonIndexDto> personIndexDtos = getPersonFacade().getIndexList(criteria, 0, 100, null);
assertEquals(2, personIndexDtos.size());
List<String> firstNames = personIndexDtos.stream().map(p -> p.getFirstName()).collect(Collectors.toList());
assertTrue(firstNames.contains(personWithCorona.getFirstName()));
assertTrue(firstNames.contains(personWithDengue.getFirstName()));
// login with a user wiht limieted disease restrictions
final UserDto user = creator.createUser(rdcf, "Limieted Disease", "National User", Disease.DENGUE, UserRole.NATIONAL_USER);
loginWith(user);
personIndexDtos = getPersonFacade().getIndexList(criteria, 0, 100, null);
assertEquals(1, personIndexDtos.size());
assertEquals(personWithDengue.getFirstName(), personIndexDtos.get(0).getFirstName());
}
Aggregations