use of org.hisp.dhis.tracker.domain.Event in project dhis2-core by dhis2.
the class PreCheckDataRelationsValidationHookTest method eventValidationFailsWhenOnlyAOCIsSetToDefaultAOCNotInProgramCC.
@Test
void eventValidationFailsWhenOnlyAOCIsSetToDefaultAOCNotInProgramCC() {
OrganisationUnit orgUnit = setupOrgUnit();
Program program = setupProgram(orgUnit);
program.setCategoryCombo(categoryCombo('A'));
CategoryOptionCombo defaultAOC = firstCategoryOptionCombo(defaultCategoryCombo());
when(preheat.getCategoryOptionCombo(defaultAOC.getUid())).thenReturn(defaultAOC);
Event event = eventBuilder().attributeOptionCombo(defaultAOC.getUid()).build();
hook.validateEvent(reporter, event);
assertEquals(1, reporter.getReportList().size());
assertTrue(reporter.hasErrorReport(r -> r.getErrorCode() == TrackerErrorCode.E1055));
assertNull(reporter.getValidationContext().getCachedEventCategoryOptionCombo(event.getEvent()), "AOC id should not be cached");
}
use of org.hisp.dhis.tracker.domain.Event in project dhis2-core by dhis2.
the class PreCheckDataRelationsValidationHookTest method eventValidationSucceedsWhenOnlyCOsAreSetAndExist.
@Test
void eventValidationSucceedsWhenOnlyCOsAreSetAndExist() {
OrganisationUnit orgUnit = setupOrgUnit();
Program program = setupProgram(orgUnit);
CategoryCombo cc = categoryCombo();
program.setCategoryCombo(cc);
CategoryOption co = cc.getCategoryOptions().get(0);
when(preheat.getCategoryOption(co.getUid())).thenReturn(co);
CategoryOptionCombo aoc = firstCategoryOptionCombo(cc);
when(categoryService.getCategoryOptionCombo(cc, Sets.newHashSet(co))).thenReturn(aoc);
when(preheat.getIdentifiers()).thenReturn(TrackerIdentifierParams.builder().categoryOptionComboIdScheme(TrackerIdentifier.NAME).build());
Event event = eventBuilder().attributeOptionCombo(null).attributeCategoryOptions(co.getUid()).build();
hook.validateEvent(reporter, event);
assertFalse(reporter.hasErrors());
assertEquals(aoc, reporter.getValidationContext().getCachedEventCategoryOptionCombo(event.getEvent()), "AOC id should be cached");
assertEquals(aoc.getName(), event.getAttributeOptionCombo(), "AOC id should be set by the validation");
verify(preheat, times(1)).put(TrackerIdentifier.NAME, aoc);
}
use of org.hisp.dhis.tracker.domain.Event in project dhis2-core by dhis2.
the class PreCheckDataRelationsValidationHookTest method eventValidationFailsWhenEventAOCAndEventCOsAreSetAndCOIsNotFound.
@Test
void eventValidationFailsWhenEventAOCAndEventCOsAreSetAndCOIsNotFound() {
OrganisationUnit orgUnit = setupOrgUnit();
Program program = setupProgram(orgUnit);
CategoryCombo cc = categoryCombo();
program.setCategoryCombo(cc);
CategoryOptionCombo aoc = firstCategoryOptionCombo(cc);
when(preheat.getCategoryOptionCombo(aoc.getUid())).thenReturn(aoc);
String UNKNOWN_CO_ID = CodeGenerator.generateUid();
when(preheat.getCategoryOption(UNKNOWN_CO_ID)).thenReturn(null);
Event event = eventBuilder().attributeOptionCombo(aoc.getUid()).attributeCategoryOptions(UNKNOWN_CO_ID).build();
hook.validateEvent(reporter, event);
assertEquals(1, reporter.getReportList().size());
assertTrue(reporter.hasErrorReport(r -> r.getErrorCode() == TrackerErrorCode.E1116));
assertNull(reporter.getValidationContext().getCachedEventCategoryOptionCombo(event.getEvent()), "AOC id should not be cached");
}
use of org.hisp.dhis.tracker.domain.Event in project dhis2-core by dhis2.
the class PreCheckDataRelationsValidationHookTest method eventValidationFailsWhenOnlyCOsAreSetToCONotInCCAndEventProgramHasDefaultCC.
@Test
void eventValidationFailsWhenOnlyCOsAreSetToCONotInCCAndEventProgramHasDefaultCC() {
OrganisationUnit orgUnit = setupOrgUnit();
Program program = setupProgram(orgUnit);
CategoryCombo defaultCC = defaultCategoryCombo();
program.setCategoryCombo(defaultCC);
CategoryOptionCombo defaultAOC = firstCategoryOptionCombo(defaultCC);
when(preheat.getDefault(CategoryOptionCombo.class)).thenReturn(defaultAOC);
CategoryCombo cc = categoryCombo();
CategoryOption co = cc.getCategoryOptions().get(0);
when(preheat.getCategoryOption(co.getUid())).thenReturn(co);
Event event = eventBuilder().attributeCategoryOptions(co.getUid()).build();
hook.validateEvent(reporter, event);
assertEquals(1, reporter.getReportList().size());
assertTrue(reporter.hasErrorReport(r -> r.getErrorCode() == TrackerErrorCode.E1117 && r.getErrorMessage().contains(program.getCategoryCombo().getUid()) && r.getErrorMessage().contains(co.getUid())));
assertNull(reporter.getValidationContext().getCachedEventCategoryOptionCombo(event.getEvent()), "AOC id should not be cached");
verify(preheat, times(0)).put(any(), (IdentifiableObject) any());
}
use of org.hisp.dhis.tracker.domain.Event in project dhis2-core by dhis2.
the class PreCheckDataRelationsValidationHookTest method eventValidationFailsWhenEventAOCAndEventCOsAreSetAndAOCIsNotFound.
@Test
void eventValidationFailsWhenEventAOCAndEventCOsAreSetAndAOCIsNotFound() {
OrganisationUnit orgUnit = setupOrgUnit();
Program program = setupProgram(orgUnit);
CategoryCombo cc = categoryCombo();
program.setCategoryCombo(cc);
CategoryOption co = cc.getCategoryOptions().get(0);
when(preheat.getCategoryOption(co.getUid())).thenReturn(co);
String UNKNOWN_AOC_ID = CodeGenerator.generateUid();
when(preheat.getCategoryOptionCombo(UNKNOWN_AOC_ID)).thenReturn(null);
Event event = eventBuilder().attributeOptionCombo(UNKNOWN_AOC_ID).attributeCategoryOptions(co.getUid()).build();
hook.validateEvent(reporter, event);
assertEquals(1, reporter.getReportList().size());
assertTrue(reporter.hasErrorReport(r -> r.getErrorCode() == TrackerErrorCode.E1115));
assertNull(reporter.getValidationContext().getCachedEventCategoryOptionCombo(event.getEvent()), "AOC id should not be cached");
}
Aggregations