use of org.hisp.dhis.tracker.domain.Event in project dhis2-core by dhis2.
the class EventDataValuesValidationHookTest method succeedsOnSkippedEventWithDataElementValueIsNullAndEventStatusSkippedOrScheduled.
@Test
void succeedsOnSkippedEventWithDataElementValueIsNullAndEventStatusSkippedOrScheduled() {
setUpIdentifiers();
DataElement validDataElement = dataElement();
when(context.getDataElement(dataElementUid)).thenReturn(validDataElement);
ProgramStage programStage = programStage(validDataElement, true);
when(context.getProgramStage(programStageUid)).thenReturn(programStage);
ValidationErrorReporter reporter = new ValidationErrorReporter(context);
DataValue validDataValue = dataValue();
validDataValue.setValue(null);
Event event = Event.builder().programStage(programStage.getUid()).status(EventStatus.SKIPPED).dataValues(Set.of(validDataValue)).build();
hook.validateEvent(reporter, event);
assertFalse(reporter.hasErrors());
}
use of org.hisp.dhis.tracker.domain.Event in project dhis2-core by dhis2.
the class EventGeoValidationHookTest method testProgramStageWithFeatureTypeNoneFailsGeometryValidation.
@Test
void testProgramStageWithFeatureTypeNoneFailsGeometryValidation() {
// given
Event event = new Event();
event.setEvent(CodeGenerator.generateUid());
event.setProgramStage(PROGRAM_STAGE);
event.setGeometry(new GeometryFactory().createPoint());
ValidationErrorReporter reporter = new ValidationErrorReporter(validationContext);
// when
ProgramStage programStage = new ProgramStage();
programStage.setFeatureType(NONE);
when(validationContext.getProgramStage(event.getProgramStage())).thenReturn(programStage);
this.hookToTest.validateEvent(reporter, event);
// then
hasTrackerError(reporter, E1012, EVENT, event.getUid());
}
use of org.hisp.dhis.tracker.domain.Event in project dhis2-core by dhis2.
the class EventGeoValidationHookTest method testProgramStageWithNullFeatureTypeFailsGeometryValidation.
@Test
void testProgramStageWithNullFeatureTypeFailsGeometryValidation() {
// given
Event event = new Event();
event.setEvent(CodeGenerator.generateUid());
event.setProgramStage(PROGRAM_STAGE);
event.setGeometry(new GeometryFactory().createPoint());
ValidationErrorReporter reporter = new ValidationErrorReporter(validationContext);
// when
when(validationContext.getProgramStage(event.getProgramStage())).thenReturn(new ProgramStage());
this.hookToTest.validateEvent(reporter, event);
// then
hasTrackerError(reporter, E1074, EVENT, event.getUid());
}
use of org.hisp.dhis.tracker.domain.Event in project dhis2-core by dhis2.
the class EventGeoValidationHookTest method testGeometryIsValid.
@Test
void testGeometryIsValid() {
// given
Event event = new Event();
event.setProgramStage(PROGRAM_STAGE);
event.setGeometry(new GeometryFactory().createPoint());
ValidationErrorReporter reporter = new ValidationErrorReporter(validationContext);
// when
this.hookToTest.validateEvent(reporter, event);
// then
assertFalse(reporter.hasErrors());
}
use of org.hisp.dhis.tracker.domain.Event in project dhis2-core by dhis2.
the class PreCheckDataRelationsValidationHookTest method eventValidationFailsWhenEventAOCAndEventCOsAreSetAndInProgramCCButDoNotMatch.
@Test
void eventValidationFailsWhenEventAOCAndEventCOsAreSetAndInProgramCCButDoNotMatch() {
OrganisationUnit orgUnit = setupOrgUnit();
Program program = setupProgram(orgUnit);
CategoryCombo cc = categoryCombo();
program.setCategoryCombo(cc);
CategoryOptionCombo aoc1 = cc.getSortedOptionCombos().get(0);
CategoryOption co1 = (CategoryOption) aoc1.getCategoryOptions().toArray()[0];
when(preheat.getCategoryOption(co1.getUid())).thenReturn(co1);
CategoryOptionCombo aoc2 = cc.getSortedOptionCombos().get(1);
when(preheat.getCategoryOptionCombo(aoc2.getUid())).thenReturn(aoc2);
Event event = eventBuilder().attributeOptionCombo(aoc2.getUid()).attributeCategoryOptions(co1.getUid()).build();
hook.validateEvent(reporter, event);
assertEquals(1, reporter.getReportList().size());
assertTrue(reporter.hasErrorReport(r -> r.getErrorCode() == TrackerErrorCode.E1053 && r.getErrorMessage().contains(co1.getUid()) && r.getErrorMessage().contains(aoc2.getUid())));
assertNull(reporter.getValidationContext().getCachedEventCategoryOptionCombo(event.getEvent()), "AOC id should not be cached");
verify(preheat, times(0)).put(any(), (IdentifiableObject) any());
}
Aggregations