use of org.hisp.dhis.tracker.report.TrackerErrorCode.E1039 in project dhis2-core by dhis2.
the class RepeatedEventsValidationHookTest method testOneEventInNotRepeatableProgramStageAndOneAlreadyOnDBAreNotPassingValidation.
@Test
void testOneEventInNotRepeatableProgramStageAndOneAlreadyOnDBAreNotPassingValidation() {
// given
Event event = notRepeatableEvent("A");
ProgramInstance programInstance = new ProgramInstance();
programInstance.setUid(event.getEnrollment());
// when
bundle.setStrategy(event, TrackerImportStrategy.CREATE);
when(preheat.getEnrollment(TrackerIdScheme.UID, event.getEnrollment())).thenReturn(programInstance);
when(preheat.getProgramStageWithEvents()).thenReturn(Lists.newArrayList(Pair.of(event.getProgramStage(), event.getEnrollment())));
bundle.setEvents(Lists.newArrayList(event));
ValidationErrorReporter errorReporter = new ValidationErrorReporter(new TrackerImportValidationContext(bundle));
validatorToTest.validate(errorReporter, ctx);
// then
assertEquals(1, errorReporter.getReportList().size());
assertTrue(errorReporter.hasErrorReport(err -> E1039.equals(err.getErrorCode()) && EVENT.equals(err.getTrackerType()) && event.getUid().equals(err.getUid())));
assertThat(errorReporter.getReportList().get(0).getErrorMessage(), is("ProgramStage: `" + NOT_REPEATABLE_PROGRAM_STAGE_WITH_REGISTRATION + "`, is not repeatable and an event already exists."));
}
Aggregations