use of org.hisp.dhis.tracker.domain.TrackedEntity in project dhis2-core by dhis2.
the class TrackedEntityAttributeValidationHookTest method shouldPassValidationWhenValueIsNullAndAttributeIsNotMandatory.
@Test
void shouldPassValidationWhenValueIsNullAndAttributeIsNotMandatory() {
TrackedEntityTypeAttribute trackedEntityTypeAttribute = new TrackedEntityTypeAttribute();
TrackedEntityAttribute trackedEntityAttribute = new TrackedEntityAttribute();
trackedEntityAttribute.setUid("trackedEntityAttribute");
trackedEntityAttribute.setValueType(ValueType.TEXT);
trackedEntityTypeAttribute.setTrackedEntityAttribute(trackedEntityAttribute);
TrackedEntityType trackedEntityType = new TrackedEntityType();
trackedEntityType.setTrackedEntityTypeAttributes(Collections.singletonList(trackedEntityTypeAttribute));
when(validationContext.getTrackedEntityAttribute("trackedEntityAttribute")).thenReturn(trackedEntityAttribute);
when(validationContext.getTrackedEntityType(anyString())).thenReturn(trackedEntityType);
TrackedEntity trackedEntity = TrackedEntity.builder().attributes(Collections.singletonList(Attribute.builder().attribute("trackedEntityAttribute").build())).trackedEntityType("trackedEntityType").build();
ValidationErrorReporter reporter = new ValidationErrorReporter(validationContext);
trackedEntityAttributeValidationHook.validateTrackedEntity(reporter, trackedEntity);
assertFalse(reporter.hasErrors());
assertEquals(0, reporter.getReportList().size());
}
use of org.hisp.dhis.tracker.domain.TrackedEntity in project dhis2-core by dhis2.
the class TrackedEntityAttributeValidationHookTest method shouldFailDataValueIsValid.
@Test
void shouldFailDataValueIsValid() {
ValidationErrorReporter reporter = new ValidationErrorReporter(validationContext);
when(trackedEntityAttribute.getValueType()).thenReturn(ValueType.NUMBER);
TrackedEntity te = TrackedEntity.builder().trackedEntity(CodeGenerator.generateUid()).build();
trackedEntityAttributeValidationHook.validateAttributeValue(reporter, te, trackedEntityAttribute, "value");
assertTrue(reporter.hasErrors());
assertEquals(1, reporter.getReportList().size());
assertTrue(reporter.hasErrorReport(err -> TrackerErrorCode.E1085.equals(err.getErrorCode()) && TrackerType.TRACKED_ENTITY.equals(err.getTrackerType()) && te.getTrackedEntity().equals(err.getUid())));
}
use of org.hisp.dhis.tracker.domain.TrackedEntity in project dhis2-core by dhis2.
the class TrackedEntityAttributeValidationHookTest method shouldFailValidationMandatoryFields.
@Test
void shouldFailValidationMandatoryFields() {
String tet = "tet";
TrackedEntityType trackedEntityType = new TrackedEntityType();
TrackedEntityTypeAttribute trackedEntityTypeAttribute = new TrackedEntityTypeAttribute();
trackedEntityTypeAttribute.setMandatory(true);
TrackedEntityAttribute trackedEntityAttribute = new TrackedEntityAttribute();
trackedEntityAttribute.setUid("c");
trackedEntityTypeAttribute.setTrackedEntityAttribute(trackedEntityAttribute);
trackedEntityType.setTrackedEntityTypeAttributes(Collections.singletonList(trackedEntityTypeAttribute));
when(validationContext.getTrackedEntityType(tet)).thenReturn(trackedEntityType);
TrackedEntity trackedEntity = TrackedEntity.builder().trackedEntityType(tet).attributes(Arrays.asList(Attribute.builder().attribute("a").value("value").build(), Attribute.builder().attribute("b").value("value").build())).build();
TrackedEntityAttribute contextAttribute = new TrackedEntityAttribute();
contextAttribute.setUid("uid");
contextAttribute.setValueType(ValueType.TEXT);
when(validationContext.getTrackedEntityAttribute(anyString())).thenReturn(contextAttribute);
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.E1090).count());
}
use of org.hisp.dhis.tracker.domain.TrackedEntity in project dhis2-core by dhis2.
the class TrackedEntityAttributeValidationHookTest method shouldFailValueTooLong.
@Test
void shouldFailValueTooLong() {
ValidationErrorReporter reporter = new ValidationErrorReporter(validationContext);
when(trackedEntityAttribute.getValueType()).thenReturn(ValueType.TEXT);
StringBuilder sbString = new StringBuilder();
for (int i = 0; i < Constant.MAX_ATTR_VALUE_LENGTH + 1; i++) {
sbString.append("a");
}
TrackedEntity te = TrackedEntity.builder().trackedEntity(CodeGenerator.generateUid()).build();
trackedEntityAttributeValidationHook.validateAttributeValue(reporter, te, trackedEntityAttribute, sbString.toString());
assertTrue(reporter.hasErrors());
assertEquals(1, reporter.getReportList().size());
assertTrue(reporter.hasErrorReport(err -> TrackerErrorCode.E1077.equals(err.getErrorCode()) && TrackerType.TRACKED_ENTITY.equals(err.getTrackerType()) && te.getTrackedEntity().equals(err.getUid())));
}
use of org.hisp.dhis.tracker.domain.TrackedEntity in project dhis2-core by dhis2.
the class PreCheckExistenceValidationHookTest method verifyTrackedEntityValidationFailsWhenIsCreateAndTEIIsAlreadyPresent.
@Test
void verifyTrackedEntityValidationFailsWhenIsCreateAndTEIIsAlreadyPresent() {
// given
TrackedEntity trackedEntity = TrackedEntity.builder().trackedEntity(TEI_UID).build();
// when
when(ctx.getStrategy(trackedEntity)).thenReturn(TrackerImportStrategy.CREATE);
ValidationErrorReporter reporter = new ValidationErrorReporter(ctx);
validationHook.validateTrackedEntity(reporter, trackedEntity);
// then
hasTrackerError(reporter, E1002, TRACKED_ENTITY, trackedEntity.getUid());
}
Aggregations