use of org.hisp.dhis.tracker.importer.databuilder.EnrollmentDataBuilder in project dhis2-core by dhis2.
the class RuleEngineTests method shouldShowErrorOnCompleteInTrackerEvents.
@Test
public void shouldShowErrorOnCompleteInTrackerEvents() throws Exception {
String tei = importTei();
JsonObject enrollment = new EnrollmentDataBuilder().setTei(tei).setEnrollmentDate(Instant.now().plus(1, ChronoUnit.DAYS).toString()).array(trackerProgramId, Constants.ORG_UNIT_IDS[0]);
String enrollmentId = trackerActions.postAndGetJobReport(enrollment).validateSuccessfulImport().extractImportedEnrollments().get(0);
JsonObject payload = new EventDataBuilder().setEnrollment(enrollmentId).setStatus("COMPLETED").array(Constants.ORG_UNIT_IDS[0], trackerProgramId, "nH8zfPSUSN1");
trackerActions.postAndGetJobReport(payload, new QueryParamsBuilder().add("async=false")).validateErrorReport().body("trackerType", hasItem("EVENT")).body("message", hasItem(stringContainsInOrder("ERROR ON COMPLETE ")));
}
use of org.hisp.dhis.tracker.importer.databuilder.EnrollmentDataBuilder in project dhis2-core by dhis2.
the class OwnershipTests method shouldNotValidateOwnershipIfProgramIsOpen.
@Test
public void shouldNotValidateOwnershipIfProgramIsOpen() {
loginActions.loginAsUser(username, userPassword);
trackerActions.getTrackedEntity(teiInSearchScope + "?fields=enrollments").validate().statusCode(200).body("enrollments", hasSize(0));
trackerActions.postAndGetJobReport(new EnrollmentDataBuilder().array(openProgram, captureOu, teiInCaptureScope, "ACTIVE")).validateSuccessfulImport();
}
use of org.hisp.dhis.tracker.importer.databuilder.EnrollmentDataBuilder in project dhis2-core by dhis2.
the class EnrollmentsTests method shouldOnlyEnrollOnce.
@ValueSource(strings = { "true", "false" })
@ParameterizedTest
public void shouldOnlyEnrollOnce(String shouldEnrollOnce) throws Exception {
// arrange
String program = programActions.createTrackerProgram(Constants.TRACKED_ENTITY_TYPE, Constants.ORG_UNIT_IDS).extractUid();
JsonObject object = programActions.get(program).getBodyAsJsonBuilder().addProperty("onlyEnrollOnce", shouldEnrollOnce).addProperty("publicAccess", "rwrw----").build();
programActions.update(program, object).validateStatus(200);
String tei = super.importTei();
JsonObject enrollment = new EnrollmentDataBuilder().setId(new IdGenerator().generateUniqueId()).array(program, Constants.ORG_UNIT_IDS[2], tei, "COMPLETED");
trackerActions.postAndGetJobReport(enrollment).validateSuccessfulImport();
// act
TrackerApiResponse response = trackerActions.postAndGetJobReport(new EnrollmentDataBuilder().array(program, Constants.ORG_UNIT_IDS[2], tei, "ACTIVE"));
// assert
if (Boolean.parseBoolean(shouldEnrollOnce)) {
response.validateErrorReport().body("errorCode", hasItems("E1016"));
return;
}
response.validateSuccessfulImport();
trackerActions.getTrackedEntity(tei + "?fields=enrollments").validate().body("enrollments", hasSize(2));
}
use of org.hisp.dhis.tracker.importer.databuilder.EnrollmentDataBuilder in project dhis2-core by dhis2.
the class EnrollmentsTests method shouldAllowFutureEnrollments.
@ParameterizedTest
@ValueSource(strings = { "true", "false " })
public void shouldAllowFutureEnrollments(String shouldAddFutureDays) throws Exception {
// arrange
JsonObject object = programActions.get(multipleEnrollmentsProgram).getBodyAsJsonBuilder().addProperty("selectEnrollmentDatesInFuture", shouldAddFutureDays).build();
programActions.update(multipleEnrollmentsProgram, object).validateStatus(200);
String teiId = importTei();
// act
JsonObject enrollment = new EnrollmentDataBuilder().setTei(teiId).setEnrollmentDate(Instant.now().plus(2, ChronoUnit.DAYS).toString()).addEvent(new EventDataBuilder().setProgram(multipleEnrollmentsProgram).setOu(Constants.ORG_UNIT_IDS[0]).setProgramStage(multipleEnrollmentsProgramStage)).array(multipleEnrollmentsProgram, Constants.ORG_UNIT_IDS[0]);
// assert
TrackerApiResponse response = trackerActions.postAndGetJobReport(enrollment, new QueryParamsBuilder().add("async", "false"));
if (Boolean.parseBoolean(shouldAddFutureDays)) {
response.validateSuccessfulImport();
return;
}
response.validateErrorReport().body("errorCode", hasSize(1)).body("errorCode", hasItems("E1020"));
}
use of org.hisp.dhis.tracker.importer.databuilder.EnrollmentDataBuilder in project dhis2-core by dhis2.
the class EnrollmentAttributeTests method shouldValidateUniquenessWithinThePayload.
@Test
public void shouldValidateUniquenessWithinThePayload() throws Exception {
String tei = importTei();
String teiB = importTei();
String value = DataGenerator.randomString();
Function<String, JsonObject> singleEnrollment = (teiId) -> {
return new EnrollmentDataBuilder().setId(new IdGenerator().generateUniqueId()).setTei(teiId).addAttribute(uniqueAttributeId, value).setProgram(programId).setOu(Constants.ORG_UNIT_IDS[1]).single();
};
JsonObject payload = new JsonObjectBuilder().addOrAppendToArray("enrollments", singleEnrollment.apply(tei), singleEnrollment.apply(teiB)).build();
trackerActions.postAndGetJobReport(payload).validateErrorReport();
}
Aggregations