use of org.hisp.dhis.tracker.domain.TrackedEntity in project dhis2-core by dhis2.
the class PreCheckExistenceValidationHookTest method verifyTrackedEntityValidationSuccessWhenTeiIsNotPresent.
@Test
void verifyTrackedEntityValidationSuccessWhenTeiIsNotPresent() {
// given
TrackedEntity trackedEntity = TrackedEntity.builder().trackedEntity(NOT_PRESENT_TEI_UID).build();
// when
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 PreCheckExistenceValidationHookTest method verifyTrackedEntityValidationSuccessWhenIsUpdate.
@Test
void verifyTrackedEntityValidationSuccessWhenIsUpdate() {
// given
TrackedEntity trackedEntity = TrackedEntity.builder().trackedEntity(TEI_UID).build();
// when
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 RelationshipsValidationHookTest method verifyValidationFailsOnInvalidFromTrackedEntityType.
@Test
void verifyValidationFailsOnInvalidFromTrackedEntityType() {
RelationshipType relType = createRelTypeConstraint(TRACKED_ENTITY_INSTANCE, PROGRAM_INSTANCE);
String trackedEntityUid = CodeGenerator.generateUid();
TrackedEntityType constraintTrackedEntityType = new TrackedEntityType();
constraintTrackedEntityType.setUid(CodeGenerator.generateUid());
relType.getFromConstraint().setTrackedEntityType(constraintTrackedEntityType);
Relationship relationship = Relationship.builder().relationship(CodeGenerator.generateUid()).from(RelationshipItem.builder().trackedEntity(trackedEntityUid).build()).to(RelationshipItem.builder().enrollment(CodeGenerator.generateUid()).build()).relationshipType(relType.getUid()).build();
when(preheat.getAll(RelationshipType.class)).thenReturn(Collections.singletonList(relType));
List<TrackedEntity> trackedEntities = new ArrayList<>();
TrackedEntity trackedEntity = new TrackedEntity();
trackedEntity.setTrackedEntity(trackedEntityUid);
trackedEntity.setTrackedEntityType(CodeGenerator.generateUid());
trackedEntities.add(trackedEntity);
when(bundle.getTrackedEntities()).thenReturn(trackedEntities);
reporter = new ValidationErrorReporter(ctx);
validationHook.validateRelationship(reporter, relationship);
hasTrackerError(reporter, E4014, RELATIONSHIP, relationship.getUid());
assertThat(reporter.getReportList().get(0).getErrorMessage(), is("Relationship Type `from` constraint requires a Tracked Entity having type `" + constraintTrackedEntityType.getUid() + "` but `" + trackedEntity.getTrackedEntityType() + "` was found."));
}
use of org.hisp.dhis.tracker.domain.TrackedEntity in project dhis2-core by dhis2.
the class TrackedEntityAttributeValidationHookTest method shouldFailOptionSetNotValid.
@Test
void shouldFailOptionSetNotValid() {
TrackedEntityAttribute trackedEntityAttribute = getTrackedEntityAttributeWithOptionSet();
when(validationContext.getTrackedEntityAttribute(anyString())).thenReturn(trackedEntityAttribute);
when(validationContext.getTrackedEntityType(anyString())).thenReturn(new TrackedEntityType());
TrackedEntity trackedEntity = TrackedEntity.builder().attributes(Collections.singletonList(Attribute.builder().attribute("uid").value("wrongCode").build())).trackedEntityType("trackedEntityType").build();
ValidationErrorReporter reporter = new ValidationErrorReporter(validationContext);
trackedEntityAttributeValidationHook.validateTrackedEntity(reporter, trackedEntity);
assertTrue(reporter.hasErrors());
assertEquals(1, reporter.getReportList().size());
assertEquals(1, reporter.getReportList().stream().filter(e -> e.getErrorCode() == TrackerErrorCode.E1125).count());
}
use of org.hisp.dhis.tracker.domain.TrackedEntity in project dhis2-core by dhis2.
the class TrackedEntityAttributeValidationHookTest method shouldFailValidationWhenValueIsNullAndAttributeIsMandatory.
@Test
void shouldFailValidationWhenValueIsNullAndAttributeIsMandatory() {
TrackedEntity trackedEntity = TrackedEntity.builder().attributes(Collections.singletonList(Attribute.builder().attribute("trackedEntityAttribute").build())).trackedEntityType("trackedEntityType").build();
TrackedEntityTypeAttribute trackedEntityTypeAttribute = new TrackedEntityTypeAttribute();
TrackedEntityAttribute trackedEntityAttribute = new TrackedEntityAttribute();
trackedEntityAttribute.setUid("trackedEntityAttribute");
trackedEntityAttribute.setValueType(ValueType.TEXT);
trackedEntityTypeAttribute.setTrackedEntityAttribute(trackedEntityAttribute);
trackedEntityTypeAttribute.setMandatory(true);
TrackedEntityType trackedEntityType = new TrackedEntityType();
trackedEntityType.setTrackedEntityTypeAttributes(Collections.singletonList(trackedEntityTypeAttribute));
when(validationContext.getTrackedEntityAttribute("trackedEntityAttribute")).thenReturn(trackedEntityAttribute);
when(validationContext.getTrackedEntityType(anyString())).thenReturn(trackedEntityType);
ValidationErrorReporter reporter = new ValidationErrorReporter(validationContext);
trackedEntityAttributeValidationHook.validateTrackedEntity(reporter, trackedEntity);
assertTrue(reporter.hasErrors());
assertEquals(1, reporter.getReportList().size());
assertEquals(TrackerErrorCode.E1076, reporter.getReportList().get(0).getErrorCode());
}
Aggregations