Search in sources :

Example 66 with RDCF

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());
}
Also used : RDCF(de.symeda.sormas.backend.TestDataCreator.RDCF) RegionReferenceDto(de.symeda.sormas.api.infrastructure.region.RegionReferenceDto) IntegerRange(de.symeda.sormas.api.IntegerRange) Year(de.symeda.sormas.api.Year) CaseDataDto(de.symeda.sormas.api.caze.CaseDataDto) PersonDto(de.symeda.sormas.api.person.PersonDto) UserDto(de.symeda.sormas.api.user.UserDto) StatisticsCaseCriteria(de.symeda.sormas.api.statistics.StatisticsCaseCriteria) StatisticsCaseCountDto(de.symeda.sormas.api.statistics.StatisticsCaseCountDto) Date(java.util.Date) LocalDate(java.time.LocalDate) AbstractBeanTest(de.symeda.sormas.backend.AbstractBeanTest) Test(org.junit.Test)

Example 67 with RDCF

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());
}
Also used : RDCF(de.symeda.sormas.backend.TestDataCreator.RDCF) FacilityDto(de.symeda.sormas.api.infrastructure.facility.FacilityDto) Date(java.util.Date) Test(org.junit.Test) AbstractBeanTest(de.symeda.sormas.backend.AbstractBeanTest)

Example 68 with RDCF

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());
}
Also used : RDCF(de.symeda.sormas.backend.TestDataCreator.RDCF) PersonDto(de.symeda.sormas.api.person.PersonDto) JournalPersonDto(de.symeda.sormas.api.person.JournalPersonDto) UserDto(de.symeda.sormas.api.user.UserDto) TravelEntryDto(de.symeda.sormas.api.travelentry.TravelEntryDto) ContactDto(de.symeda.sormas.api.contact.ContactDto) Date(java.util.Date) AbstractBeanTest(de.symeda.sormas.backend.AbstractBeanTest) Test(org.junit.Test)

Example 69 with RDCF

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()));
}
Also used : RDCF(de.symeda.sormas.backend.TestDataCreator.RDCF) PersonDto(de.symeda.sormas.api.person.PersonDto) JournalPersonDto(de.symeda.sormas.api.person.JournalPersonDto) UserDto(de.symeda.sormas.api.user.UserDto) PersonCriteria(de.symeda.sormas.api.person.PersonCriteria) PersonExportDto(de.symeda.sormas.api.person.PersonExportDto) Date(java.util.Date) AbstractBeanTest(de.symeda.sormas.backend.AbstractBeanTest) Test(org.junit.Test)

Example 70 with RDCF

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());
}
Also used : FollowUpStatus(de.symeda.sormas.api.contact.FollowUpStatus) Arrays(java.util.Arrays) Date(java.util.Date) PersonAssociation(de.symeda.sormas.api.person.PersonAssociation) Matchers.not(org.hamcrest.Matchers.not) EventParticipantDto(de.symeda.sormas.api.event.EventParticipantDto) AbstractBeanTest(de.symeda.sormas.backend.AbstractBeanTest) PersonDto(de.symeda.sormas.api.person.PersonDto) EntityDto(de.symeda.sormas.api.EntityDto) PersonContext(de.symeda.sormas.api.person.PersonContext) UserRole(de.symeda.sormas.api.user.UserRole) Matchers.isEmptyOrNullString(org.hamcrest.Matchers.isEmptyOrNullString) PersonExportDto(de.symeda.sormas.api.person.PersonExportDto) Sex(de.symeda.sormas.api.person.Sex) CaseDataDto(de.symeda.sormas.api.caze.CaseDataDto) InvestigationStatus(de.symeda.sormas.api.caze.InvestigationStatus) EventDto(de.symeda.sormas.api.event.EventDto) Collectors(java.util.stream.Collectors) PhoneNumberType(de.symeda.sormas.api.person.PhoneNumberType) RDCF(de.symeda.sormas.backend.TestDataCreator.RDCF) PersonFollowUpEndDto(de.symeda.sormas.api.person.PersonFollowUpEndDto) List(java.util.List) Matchers.containsInAnyOrder(org.hamcrest.Matchers.containsInAnyOrder) Assert.assertFalse(org.junit.Assert.assertFalse) ContactDto(de.symeda.sormas.api.contact.ContactDto) PersonContactDetailType(de.symeda.sormas.api.person.PersonContactDetailType) SymptomJournalStatus(de.symeda.sormas.api.person.SymptomJournalStatus) Optional(java.util.Optional) PersonSimilarityCriteria(de.symeda.sormas.api.person.PersonSimilarityCriteria) Matchers.is(org.hamcrest.Matchers.is) PersonIndexDto(de.symeda.sormas.api.person.PersonIndexDto) ExternalSurveillanceToolException(de.symeda.sormas.api.externalsurveillancetool.ExternalSurveillanceToolException) RegionReferenceDto(de.symeda.sormas.api.infrastructure.region.RegionReferenceDto) CoreMatchers.equalTo(org.hamcrest.CoreMatchers.equalTo) CaseClassification(de.symeda.sormas.api.caze.CaseClassification) PersonReferenceDto(de.symeda.sormas.api.person.PersonReferenceDto) DateHelper(de.symeda.sormas.api.utils.DateHelper) PersonFacade(de.symeda.sormas.api.person.PersonFacade) PersonContactDetailDto(de.symeda.sormas.api.person.PersonContactDetailDto) Matchers.hasSize(org.hamcrest.Matchers.hasSize) MatcherAssert.assertThat(org.hamcrest.MatcherAssert.assertThat) LocationDto(de.symeda.sormas.api.location.LocationDto) PersonCriteria(de.symeda.sormas.api.person.PersonCriteria) Matchers.empty(org.hamcrest.Matchers.empty) JournalPersonDto(de.symeda.sormas.api.person.JournalPersonDto) Assert.assertNotNull(org.junit.Assert.assertNotNull) UserDto(de.symeda.sormas.api.user.UserDto) Assert.assertTrue(org.junit.Assert.assertTrue) Test(org.junit.Test) SortProperty(de.symeda.sormas.api.utils.SortProperty) UserReferenceDto(de.symeda.sormas.api.user.UserReferenceDto) PresentCondition(de.symeda.sormas.api.person.PresentCondition) Assert.assertNull(org.junit.Assert.assertNull) Disease(de.symeda.sormas.api.Disease) RDCFEntities(de.symeda.sormas.backend.TestDataCreator.RDCFEntities) TravelEntryDto(de.symeda.sormas.api.travelentry.TravelEntryDto) Collections(java.util.Collections) Assert.assertEquals(org.junit.Assert.assertEquals) RDCF(de.symeda.sormas.backend.TestDataCreator.RDCF) PersonIndexDto(de.symeda.sormas.api.person.PersonIndexDto) PersonDto(de.symeda.sormas.api.person.PersonDto) JournalPersonDto(de.symeda.sormas.api.person.JournalPersonDto) UserDto(de.symeda.sormas.api.user.UserDto) PersonCriteria(de.symeda.sormas.api.person.PersonCriteria) Matchers.isEmptyOrNullString(org.hamcrest.Matchers.isEmptyOrNullString) AbstractBeanTest(de.symeda.sormas.backend.AbstractBeanTest) Test(org.junit.Test)

Aggregations

RDCF (de.symeda.sormas.backend.TestDataCreator.RDCF)75 AbstractBeanTest (de.symeda.sormas.backend.AbstractBeanTest)74 Test (org.junit.Test)74 UserDto (de.symeda.sormas.api.user.UserDto)53 Date (java.util.Date)43 CaseDataDto (de.symeda.sormas.api.caze.CaseDataDto)42 PersonDto (de.symeda.sormas.api.person.PersonDto)33 LocalDate (java.time.LocalDate)33 UserReferenceDto (de.symeda.sormas.api.user.UserReferenceDto)19 EventDto (de.symeda.sormas.api.event.EventDto)18 ContactDto (de.symeda.sormas.api.contact.ContactDto)17 CasePersonDto (de.symeda.sormas.api.caze.CasePersonDto)13 Matchers.isEmptyOrNullString (org.hamcrest.Matchers.isEmptyOrNullString)12 PersonReferenceDto (de.symeda.sormas.api.person.PersonReferenceDto)11 CaseCriteria (de.symeda.sormas.api.caze.CaseCriteria)10 RegionReferenceDto (de.symeda.sormas.api.infrastructure.region.RegionReferenceDto)10 TaskDto (de.symeda.sormas.api.task.TaskDto)9 CaseIndexDto (de.symeda.sormas.api.caze.CaseIndexDto)8 MapContactDto (de.symeda.sormas.api.contact.MapContactDto)8 SimilarContactDto (de.symeda.sormas.api.contact.SimilarContactDto)8