use of de.symeda.sormas.ui.TestDataCreator.RDCF in project SORMAS-Project by hzi-braunschweig.
the class ContactImporterTest method testImportCaseContactsDifferentAddressTypes.
@Test
public void testImportCaseContactsDifferentAddressTypes() throws IOException, InvalidColumnException, InterruptedException, CsvValidationException, URISyntaxException {
ContactFacadeEjb contactFacade = getBean(ContactFacadeEjbLocal.class);
RDCF rdcf = creator.createRDCF("Abia", "Umuahia North", "Urban Ward 2", "Anelechi Hospital");
UserDto user = creator.createUser(rdcf.region.getUuid(), rdcf.district.getUuid(), rdcf.facility.getUuid(), "Surv", "Sup", UserRole.SURVEILLANCE_SUPERVISOR);
PersonDto casePerson = creator.createPerson("John", "Smith");
CaseDataDto caze = creator.createCase(user.toReference(), casePerson.toReference(), Disease.CORONAVIRUS, CaseClassification.CONFIRMED, InvestigationStatus.PENDING, new Date(), rdcf);
// import of 3 contacts with different address types
File csvFile = new File(getClass().getClassLoader().getResource("sormas_case_contact_import_test_address_types.csv").toURI());
ContactImporter contactImporter = new ContactImporterExtension(csvFile, user, caze);
ImportResultStatus importResult = contactImporter.runImport();
List<ContactDto> contacts = getContactFacade().getAllAfter(null);
assertEquals(3, contacts.size());
boolean foundOtto = false;
boolean foundOskar = false;
boolean foundOona = false;
for (ContactDto contact : contacts) {
PersonDto person = getPersonFacade().getPersonByUuid(contact.getPerson().getUuid());
if ("Otto".equals(person.getFirstName())) {
foundOtto = true;
assertTrue(CollectionUtils.isEmpty(person.getAddresses()));
assertEquals("131", person.getAddress().getHouseNumber());
}
if ("Oskar".equals(person.getFirstName())) {
foundOskar = true;
assertTrue(CollectionUtils.isEmpty(person.getAddresses()));
assertEquals("132", person.getAddress().getHouseNumber());
}
if ("Oona".equals(person.getFirstName())) {
foundOona = true;
assertTrue(person.getAddress().checkIsEmptyLocation());
assertEquals(1, person.getAddresses().size());
assertEquals("133", person.getAddresses().get(0).getHouseNumber());
}
}
assertTrue("Not all contacts found.", foundOtto && foundOskar && foundOona);
}
use of de.symeda.sormas.ui.TestDataCreator.RDCF in project SORMAS-Project by hzi-braunschweig.
the class ContactImporterTest method testImportContactsWithVaccinations.
@Test
@Ignore("Remove ignore once we have replaced H2, and feature properties can be changed by code")
public void testImportContactsWithVaccinations() throws IOException, InterruptedException, CsvValidationException, InvalidColumnException, URISyntaxException {
RDCF rdcf = creator.createRDCF("Abia", "Umuahia North", "Urban Ward 2", "Anelechi Hospital");
UserDto user = creator.createUser(rdcf.region.getUuid(), rdcf.district.getUuid(), rdcf.facility.getUuid(), "Surv", "Sup", UserRole.SURVEILLANCE_SUPERVISOR);
File csvFile = new File(getClass().getClassLoader().getResource("sormas_contact_import_test_vaccinations.csv").toURI());
ContactImporterExtension contactImporter = new ContactImporterExtension(csvFile, user, null);
ImportResultStatus importResult = contactImporter.runImport();
assertEquals(contactImporter.stringBuilder.toString(), ImportResultStatus.COMPLETED, importResult);
List<ContactDto> contacts = getContactFacade().getAllAfter(null);
assertEquals(3, contacts.size());
ContactDto contact1 = contacts.stream().filter(c -> c.getCaseIdExternalSystem().equals("case1")).findFirst().get();
ContactDto contact2 = contacts.stream().filter(c -> c.getCaseIdExternalSystem().equals("case2")).findFirst().get();
ContactDto contact3 = contacts.stream().filter(c -> c.getCaseIdExternalSystem().equals("case3")).findFirst().get();
List<VaccinationDto> case1Vaccinations = FacadeProvider.getVaccinationFacade().getAllVaccinations(contact1.getPerson().getUuid(), Disease.CORONAVIRUS);
assertEquals(0, case1Vaccinations.size());
List<VaccinationDto> case2Vaccinations = FacadeProvider.getVaccinationFacade().getAllVaccinations(contact2.getPerson().getUuid(), Disease.CORONAVIRUS);
assertEquals(1, case2Vaccinations.size());
assertEquals(Vaccine.COMIRNATY, case2Vaccinations.get(0).getVaccineName());
assertNull(case2Vaccinations.get(0).getHealthConditions().getChronicPulmonaryDisease());
List<VaccinationDto> case3Vaccinations = FacadeProvider.getVaccinationFacade().getAllVaccinations(contact3.getPerson().getUuid(), Disease.CORONAVIRUS);
assertEquals(2, case3Vaccinations.size());
assertEquals(Vaccine.MRNA_1273, case3Vaccinations.get(0).getVaccineName());
assertEquals(YesNoUnknown.YES, case3Vaccinations.get(0).getHealthConditions().getChronicPulmonaryDisease());
assertEquals(Vaccine.MRNA_1273, case3Vaccinations.get(1).getVaccineName());
assertNull(case3Vaccinations.get(1).getHealthConditions().getChronicPulmonaryDisease());
}
use of de.symeda.sormas.ui.TestDataCreator.RDCF in project SORMAS-Project by hzi-braunschweig.
the class ContactImporterTest method testImportCaseContacts.
@Test
public void testImportCaseContacts() throws IOException, InvalidColumnException, InterruptedException, CsvValidationException, URISyntaxException {
ContactFacadeEjb contactFacade = getBean(ContactFacadeEjbLocal.class);
RDCF rdcf = creator.createRDCF("Abia", "Umuahia North", "Urban Ward 2", "Anelechi Hospital");
UserDto user = creator.createUser(rdcf.region.getUuid(), rdcf.district.getUuid(), rdcf.facility.getUuid(), "Surv", "Sup", UserRole.SURVEILLANCE_SUPERVISOR);
PersonDto casePerson = creator.createPerson("John", "Smith");
CaseDataDto caze = creator.createCase(user.toReference(), casePerson.toReference(), Disease.CORONAVIRUS, CaseClassification.CONFIRMED, InvestigationStatus.PENDING, new Date(), rdcf);
// Successful import of 5 case contacts
File csvFile = new File(getClass().getClassLoader().getResource("sormas_case_contact_import_test_success.csv").toURI());
ContactImporter contactImporter = new ContactImporterExtension(csvFile, user, caze);
ImportResultStatus importResult = contactImporter.runImport();
assertEquals(ImportResultStatus.COMPLETED, importResult);
assertEquals(5, contactFacade.count(null));
// Person Similarity: pick
List<SimilarPersonDto> persons = FacadeProvider.getPersonFacade().getSimilarPersonDtos(new PersonSimilarityCriteria());
csvFile = new File(getClass().getClassLoader().getResource("sormas_case_contact_import_test_similarities.csv").toURI());
contactImporter = new ContactImporterExtension(csvFile, user, caze) {
@Override
protected <T extends PersonImportSimilarityResult> void handlePersonSimilarity(PersonDto newPerson, Consumer<T> resultConsumer, BiFunction<SimilarPersonDto, ImportSimilarityResultOption, T> createSimilarityResult, String infoText, UI currentUI) {
List<SimilarPersonDto> entries = new ArrayList<>();
for (SimilarPersonDto person : persons) {
if (PersonHelper.areNamesSimilar(newPerson.getFirstName(), newPerson.getLastName(), person.getFirstName(), person.getLastName(), null)) {
entries.add(person);
}
}
resultConsumer.accept((T) new ContactImportSimilarityResult(entries.get(0), null, ImportSimilarityResultOption.PICK));
}
};
importResult = contactImporter.runImport();
assertEquals(ImportResultStatus.COMPLETED, importResult);
assertEquals(6, contactFacade.count(null));
assertEquals(6, getPersonFacade().getAllUuids().size());
// Person Similarity: skip
csvFile = new File(getClass().getClassLoader().getResource("sormas_case_contact_import_test_similarities.csv").toURI());
contactImporter = new ContactImporterExtension(csvFile, user, caze) {
@Override
protected <T extends PersonImportSimilarityResult> void handlePersonSimilarity(PersonDto newPerson, Consumer<T> resultConsumer, BiFunction<SimilarPersonDto, ImportSimilarityResultOption, T> createSimilarityResult, String infoText, UI currentUI) {
resultConsumer.accept((T) new ContactImportSimilarityResult(null, null, ImportSimilarityResultOption.SKIP));
}
};
importResult = contactImporter.runImport();
assertEquals(ImportResultStatus.COMPLETED, importResult);
assertEquals(6, contactFacade.count(null));
assertEquals(6, getPersonFacade().getAllUuids().size());
// Person Similarity: create
csvFile = new File(getClass().getClassLoader().getResource("sormas_case_contact_import_test_similarities.csv").toURI());
contactImporter = new ContactImporterExtension(csvFile, user, caze);
importResult = contactImporter.runImport();
assertEquals(ImportResultStatus.COMPLETED, importResult);
assertEquals(7, contactFacade.count(null));
assertEquals(7, getPersonFacade().getAllUuids().size());
// Test import contacts from a commented CSV file
// Successful import of 5 case contacts
csvFile = new File(getClass().getClassLoader().getResource("sormas_case_contact_import_test_comment_success.csv").toURI());
contactImporter = new ContactImporterExtension(csvFile, user, caze);
importResult = contactImporter.runImport();
assertEquals(ImportResultStatus.COMPLETED, importResult);
assertEquals(12, contactFacade.count(null));
}
use of de.symeda.sormas.ui.TestDataCreator.RDCF in project SORMAS-Project by hzi-braunschweig.
the class InfrastructureImporterTest method testLargeFileUtf8.
@Test
public void testLargeFileUtf8() throws IOException, InvalidColumnException, InterruptedException, CsvValidationException, URISyntaxException {
RDCF rdcf = new TestDataCreator().createRDCF("Default Region", "Default District", "Default Community", "Default Facility");
UserDto user = creator.createUser(rdcf.region.getUuid(), rdcf.district.getUuid(), rdcf.facility.getUuid(), "Default", "User", UserRole.ADMIN);
// Import region
File regionCsvFile = new File(getClass().getClassLoader().getResource("sormas_region_import_test_large_file_utf8.csv").toURI());
InfrastructureImporter importer = new InfrastructureImporterExtension(regionCsvFile, user, InfrastructureType.REGION);
importer.runImport();
List<RegionReferenceDto> allActiveRegions = getRegionFacade().getAllActiveAsReference();
RegionReferenceDto region2 = getRegionFacade().getReferencesByName("Sömé rêâlly ßtràngë cøüntry", false).get(0);
assertEquals("Sömé rêâlly ßtràngë cøüntry", region2.getCaption());
}
use of de.symeda.sormas.ui.TestDataCreator.RDCF in project SORMAS-Project by hzi-braunschweig.
the class InfrastructureImporterTest method testDontImportDuplicateInfrastructure.
@Test
public void testDontImportDuplicateInfrastructure() throws IOException, InvalidColumnException, InterruptedException, CsvValidationException, URISyntaxException {
RDCF rdcf = new TestDataCreator().createRDCF("Default Region", "Default District", "Default Community", "Default Facility");
UserDto user = creator.createUser(rdcf.region.getUuid(), rdcf.district.getUuid(), rdcf.facility.getUuid(), "Default", "User", UserRole.ADMIN);
// Import region
File regionCsvFile = new File(getClass().getClassLoader().getResource("sormas_region_import_test.csv").toURI());
InfrastructureImporter importer = new InfrastructureImporterExtension(regionCsvFile, user, InfrastructureType.REGION);
assertEquals(ImportResultStatus.COMPLETED_WITH_ERRORS, importer.runImport());
assertEquals(2, getRegionFacade().count(new RegionCriteria()));
// Import district
File districtCsvFile = new File(getClass().getClassLoader().getResource("sormas_district_import_test.csv").toURI());
importer = new InfrastructureImporterExtension(districtCsvFile, user, InfrastructureType.DISTRICT);
assertEquals(ImportResultStatus.COMPLETED_WITH_ERRORS, importer.runImport());
assertEquals(2, getDistrictFacade().count(new DistrictCriteria()));
// Import community
File communityCsvFile = new File(getClass().getClassLoader().getResource("sormas_community_import_test.csv").toURI());
importer = new InfrastructureImporterExtension(communityCsvFile, user, InfrastructureType.COMMUNITY);
assertEquals(ImportResultStatus.COMPLETED_WITH_ERRORS, importer.runImport());
assertEquals(2, getCommunityFacade().count(new CommunityCriteria()));
// Import facility
File facilityCsvFile = new File(getClass().getClassLoader().getResource("sormas_facility_import_test.csv").toURI());
importer = new InfrastructureImporterExtension(facilityCsvFile, user, InfrastructureType.FACILITY);
assertEquals(ImportResultStatus.COMPLETED_WITH_ERRORS, importer.runImport());
assertEquals(3, getFacilityFacade().count(new FacilityCriteria()));
// Import point of entry
File poeCsvFile = new File(getClass().getClassLoader().getResource("sormas_poe_import_test.csv").toURI());
importer = new InfrastructureImporterExtension(poeCsvFile, user, InfrastructureType.POINT_OF_ENTRY);
assertEquals(ImportResultStatus.COMPLETED_WITH_ERRORS, importer.runImport());
assertEquals(1, getPointOfEntryFacade().count(new PointOfEntryCriteria()));
}
Aggregations