use of org.hisp.dhis.tracker.domain.TrackedEntity in project dhis2-core by dhis2.
the class PreCheckMandatoryFieldsValidationHookTest method verifyTrackedEntityValidationFailsOnMissingOrgUnit.
@Test
void verifyTrackedEntityValidationFailsOnMissingOrgUnit() {
TrackedEntity trackedEntity = TrackedEntity.builder().trackedEntity(CodeGenerator.generateUid()).trackedEntityType(CodeGenerator.generateUid()).orgUnit(null).build();
ValidationErrorReporter reporter = new ValidationErrorReporter(ctx);
validationHook.validateTrackedEntity(reporter, trackedEntity);
assertMissingPropertyForTrackedEntity(reporter, trackedEntity.getUid(), "orgUnit");
}
use of org.hisp.dhis.tracker.domain.TrackedEntity in project dhis2-core by dhis2.
the class PreCheckExistenceValidationHookTest method verifyTrackedEntityValidationSuccessWhenIsCreateAndTeiIsNotPresent.
@Test
void verifyTrackedEntityValidationSuccessWhenIsCreateAndTeiIsNotPresent() {
// given
TrackedEntity trackedEntity = TrackedEntity.builder().trackedEntity(NOT_PRESENT_TEI_UID).build();
// when
when(ctx.getStrategy(trackedEntity)).thenReturn(TrackerImportStrategy.CREATE);
ValidationErrorReporter reporter = new ValidationErrorReporter(ctx);
validationHook.validateTrackedEntity(reporter, trackedEntity);
// then
assertFalse(reporter.hasErrors());
}
use of org.hisp.dhis.tracker.domain.TrackedEntity in project dhis2-core by dhis2.
the class PreCheckDataRelationsValidationHookTest method verifyValidationFailsWhenEnrollmentAndProgramTeiTypeDontMatchAndTEIIsInPayload.
@Test
void verifyValidationFailsWhenEnrollmentAndProgramTeiTypeDontMatchAndTEIIsInPayload() {
OrganisationUnit orgUnit = organisationUnit(ORG_UNIT_ID);
when(ctx.getOrganisationUnit(ORG_UNIT_ID)).thenReturn(orgUnit);
when(ctx.getProgram(PROGRAM_UID)).thenReturn(programWithRegistration(PROGRAM_UID, orgUnit, trackedEntityType(TEI_TYPE_ID)));
when(ctx.getProgramWithOrgUnitsMap()).thenReturn(Collections.singletonMap(PROGRAM_UID, Collections.singletonList(ORG_UNIT_ID)));
when(ctx.getTrackedEntityInstance(TEI_ID)).thenReturn(null);
TrackedEntity trackedEntity = TrackedEntity.builder().trackedEntity(TEI_ID).trackedEntityType(ANOTHER_TEI_TYPE_ID).build();
bundle.setTrackedEntities(Collections.singletonList(trackedEntity));
Enrollment enrollment = Enrollment.builder().enrollment(CodeGenerator.generateUid()).program(PROGRAM_UID).orgUnit(ORG_UNIT_ID).trackedEntity(TEI_ID).build();
hook.validateEnrollment(reporter, enrollment);
assertTrue(reporter.hasErrorReport(r -> r.getErrorCode() == TrackerErrorCode.E1022));
}
use of org.hisp.dhis.tracker.domain.TrackedEntity in project dhis2-core by dhis2.
the class PreCheckDataRelationsValidationHookTest method verifyValidationFailsWhenEnrollmentAndProgramTeiTypeDontMatch.
@Test
void verifyValidationFailsWhenEnrollmentAndProgramTeiTypeDontMatch() {
OrganisationUnit orgUnit = organisationUnit(ORG_UNIT_ID);
when(ctx.getOrganisationUnit(ORG_UNIT_ID)).thenReturn(orgUnit);
when(ctx.getProgram(PROGRAM_UID)).thenReturn(programWithRegistration(PROGRAM_UID, orgUnit, trackedEntityType(TEI_TYPE_ID)));
when(ctx.getProgramWithOrgUnitsMap()).thenReturn(Collections.singletonMap(PROGRAM_UID, Collections.singletonList(ORG_UNIT_ID)));
TrackedEntityType anotherTrackedEntityType = trackedEntityType(TEI_ID, 'B');
when(ctx.getTrackedEntityInstance(TEI_ID)).thenReturn(trackedEntityInstance(TEI_ID, anotherTrackedEntityType, orgUnit));
Enrollment enrollment = Enrollment.builder().enrollment(CodeGenerator.generateUid()).program(PROGRAM_UID).orgUnit(ORG_UNIT_ID).trackedEntity(TEI_ID).build();
hook.validateEnrollment(reporter, enrollment);
assertTrue(reporter.hasErrorReport(r -> r.getErrorCode() == TrackerErrorCode.E1022));
}
use of org.hisp.dhis.tracker.domain.TrackedEntity in project dhis2-core by dhis2.
the class PreCheckSecurityOwnershipValidationHookTest method verifyCaptureScopeIsCheckedForTrackedEntityCreation.
@Test
void verifyCaptureScopeIsCheckedForTrackedEntityCreation() {
TrackedEntity trackedEntity = TrackedEntity.builder().trackedEntity(TEI_ID).orgUnit(ORG_UNIT_ID).trackedEntityType(TEI_TYPE_ID).build();
when(ctx.getOrganisationUnit(ORG_UNIT_ID)).thenReturn(organisationUnit);
when(ctx.getTrackedEntityType(TEI_TYPE_ID)).thenReturn(trackedEntityType);
when(ctx.getStrategy(trackedEntity)).thenReturn(TrackerImportStrategy.CREATE);
when(ctx.getOrganisationUnit(ORG_UNIT_ID)).thenReturn(organisationUnit);
when(organisationUnitService.isInUserHierarchyCached(user, organisationUnit)).thenReturn(true);
when(aclService.canDataWrite(user, trackedEntityType)).thenReturn(true);
reporter = new ValidationErrorReporter(ctx);
validatorToTest.validateTrackedEntity(reporter, trackedEntity);
assertFalse(reporter.hasErrors());
}
Aggregations