use of org.hisp.dhis.tracker.domain.TrackedEntity in project dhis2-core by dhis2.
the class PreCheckSecurityOwnershipValidationHookTest method verifyValidationFailsForTrackedEntityWithUserNotInOrgUnitCaptureScopeHierarchy.
@Test
void verifyValidationFailsForTrackedEntityWithUserNotInOrgUnitCaptureScopeHierarchy() {
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(false);
when(aclService.canDataWrite(user, trackedEntityType)).thenReturn(true);
reporter = new ValidationErrorReporter(ctx);
validatorToTest.validateTrackedEntity(reporter, trackedEntity);
validatorToTest.validateTrackedEntity(reporter, trackedEntity);
hasTrackerError(reporter, E1000, TrackerType.TRACKED_ENTITY, trackedEntity.getUid());
}
use of org.hisp.dhis.tracker.domain.TrackedEntity in project dhis2-core by dhis2.
the class PreCheckUpdatableFieldsValidationHookTest method verifyTrackedEntityValidationFailsWhenUpdateTrackedEntityType.
@Test
void verifyTrackedEntityValidationFailsWhenUpdateTrackedEntityType() {
// given
TrackedEntity trackedEntity = validTei();
trackedEntity.setTrackedEntityType("NewTrackedEntityTypeId");
// when
ValidationErrorReporter reporter = new ValidationErrorReporter(ctx);
validationHook.validateTrackedEntity(reporter, trackedEntity);
// then
hasTrackerError(reporter, E1126, TRACKED_ENTITY, trackedEntity.getUid());
}
use of org.hisp.dhis.tracker.domain.TrackedEntity in project dhis2-core by dhis2.
the class TrackedEntityAttributeValidationHookTest method shouldPassValidation.
@Test
void shouldPassValidation() {
TrackedEntityAttribute trackedEntityAttribute = new TrackedEntityAttribute();
trackedEntityAttribute.setUid("uid");
trackedEntityAttribute.setValueType(ValueType.TEXT);
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("value").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 shouldFailValidationMissingTea.
@Test
void shouldFailValidationMissingTea() {
TrackedEntity trackedEntity = TrackedEntity.builder().attributes(Arrays.asList(Attribute.builder().attribute("aaaaa").build(), Attribute.builder().attribute("bbbbb").build())).trackedEntityType("tet").build();
when(validationContext.getTrackedEntityType(anyString())).thenReturn(new TrackedEntityType());
ValidationErrorReporter reporter = new ValidationErrorReporter(validationContext);
trackedEntityAttributeValidationHook.validateTrackedEntity(reporter, trackedEntity);
assertTrue(reporter.hasErrors());
assertEquals(2, reporter.getReportList().size());
assertEquals(2, reporter.getReportList().stream().filter(e -> e.getErrorCode() == TrackerErrorCode.E1006).count());
}
use of org.hisp.dhis.tracker.domain.TrackedEntity in project dhis2-core by dhis2.
the class TrackedEntityAttributeValidationHookTest method shouldFailEncryptionStatus.
@Test
void shouldFailEncryptionStatus() {
when(trackedEntityAttribute.isConfidentialBool()).thenReturn(true);
when(trackedEntityAttribute.getValueType()).thenReturn(ValueType.AGE);
when(dhisConfigurationProvider.getEncryptionStatus()).thenReturn(EncryptionStatus.ENCRYPTION_PASSWORD_TOO_SHORT);
when(dhisConfigurationProvider.getProperty(any())).thenReturn("property");
when(trackedEntityAttribute.getValueType()).thenReturn(ValueType.TEXT);
when(validationContext.getTrackedEntityAttribute(anyString())).thenReturn(trackedEntityAttribute);
ValidationErrorReporter reporter = new ValidationErrorReporter(validationContext);
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.E1112.equals(err.getErrorCode()) && TrackerType.TRACKED_ENTITY.equals(err.getTrackerType()) && te.getTrackedEntity().equals(err.getUid())));
}
Aggregations