use of org.hisp.dhis.tracker.domain.TrackedEntity in project dhis2-core by dhis2.
the class StrategyPreProcessor method preProcessTrackedEntities.
public void preProcessTrackedEntities(TrackerBundle bundle) {
for (TrackedEntity tei : bundle.getTrackedEntities()) {
TrackerImportStrategy importStrategy = bundle.getImportStrategy();
TrackedEntityInstance existingTei = bundle.getPreheat().getTrackedEntity(TrackerIdScheme.UID, tei.getTrackedEntity());
if (importStrategy.isCreateAndUpdate()) {
if (existingTei == null) {
bundle.setStrategy(tei, TrackerImportStrategy.CREATE);
} else {
bundle.setStrategy(tei, TrackerImportStrategy.UPDATE);
}
} else {
bundle.setStrategy(tei, importStrategy);
}
}
}
use of org.hisp.dhis.tracker.domain.TrackedEntity in project dhis2-core by dhis2.
the class PreCheckDataRelationsValidationHookTest method verifyValidationFailsWhenLinkedTrackedEntityIsNotFound.
@Test
void verifyValidationFailsWhenLinkedTrackedEntityIsNotFound() {
RelationshipType relType = createRelTypeConstraint(TRACKED_ENTITY_INSTANCE, TRACKED_ENTITY_INSTANCE);
Relationship relationship = Relationship.builder().relationship(CodeGenerator.generateUid()).from(RelationshipItem.builder().trackedEntity("validTrackedEntity").build()).to(RelationshipItem.builder().trackedEntity("anotherValidTrackedEntity").build()).relationshipType(relType.getUid()).build();
hook.validateRelationship(reporter, relationship);
assertTrue(reporter.hasErrors());
assertTrue(reporter.hasErrorReport(r -> r.getErrorCode() == TrackerErrorCode.E4012));
assertThat(reporter.getReportList().stream().map(TrackerErrorReport::getErrorMessage).collect(Collectors.toList()), hasItem("Could not find `trackedEntity`: `validTrackedEntity`, linked to Relationship."));
assertThat(reporter.getReportList().stream().map(TrackerErrorReport::getErrorMessage).collect(Collectors.toList()), hasItem("Could not find `trackedEntity`: `anotherValidTrackedEntity`, linked to Relationship."));
}
use of org.hisp.dhis.tracker.domain.TrackedEntity in project dhis2-core by dhis2.
the class PreCheckMandatoryFieldsValidationHookTest method verifyTrackedEntityValidationFailsOnMissingTrackedEntityType.
@Test
void verifyTrackedEntityValidationFailsOnMissingTrackedEntityType() {
TrackedEntity trackedEntity = TrackedEntity.builder().trackedEntity(CodeGenerator.generateUid()).trackedEntityType(null).orgUnit(CodeGenerator.generateUid()).build();
ValidationErrorReporter reporter = new ValidationErrorReporter(ctx);
validationHook.validateTrackedEntity(reporter, trackedEntity);
assertMissingPropertyForTrackedEntity(reporter, trackedEntity.getUid(), "trackedEntityType");
}
use of org.hisp.dhis.tracker.domain.TrackedEntity in project dhis2-core by dhis2.
the class PreCheckSecurityOwnershipValidationHookTest method verifyValidationSuccessForTrackedEntityWithNoProgramInstancesUsingDeleteStrategy.
@Test
void verifyValidationSuccessForTrackedEntityWithNoProgramInstancesUsingDeleteStrategy() {
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.DELETE);
when(ctx.getTrackedEntityInstance(TEI_ID)).thenReturn(getTEIWithNoProgramInstances());
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());
}
use of org.hisp.dhis.tracker.domain.TrackedEntity in project dhis2-core by dhis2.
the class PreCheckSecurityOwnershipValidationHookTest method verifyValidationSuccessForTrackedEntity.
@Test
void verifyValidationSuccessForTrackedEntity() {
TrackedEntity trackedEntity = TrackedEntity.builder().trackedEntity(CodeGenerator.generateUid()).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_AND_UPDATE);
when(organisationUnitService.isInUserSearchHierarchyCached(user, organisationUnit)).thenReturn(true);
when(aclService.canDataWrite(user, trackedEntityType)).thenReturn(true);
reporter = new ValidationErrorReporter(ctx);
validatorToTest.validateTrackedEntity(reporter, trackedEntity);
assertFalse(reporter.hasErrors());
}
Aggregations