use of org.hisp.dhis.trackedentity.TrackedEntityType in project dhis2-core by dhis2.
the class RegistrationSingleEventServiceTest method setUpTest.
@Override
protected void setUpTest() throws Exception {
userService = _userService;
organisationUnitA = createOrganisationUnit('A');
organisationUnitB = createOrganisationUnit('B');
manager.save(organisationUnitA);
manager.save(organisationUnitB);
TrackedEntityType trackedEntityType = createTrackedEntityType('A');
trackedEntityTypeService.addTrackedEntityType(trackedEntityType);
maleA = createTrackedEntityInstance(organisationUnitA);
maleB = createTrackedEntityInstance(organisationUnitB);
femaleA = createTrackedEntityInstance(organisationUnitA);
femaleB = createTrackedEntityInstance(organisationUnitB);
maleA.setTrackedEntityType(trackedEntityType);
maleB.setTrackedEntityType(trackedEntityType);
femaleA.setTrackedEntityType(trackedEntityType);
femaleB.setTrackedEntityType(trackedEntityType);
manager.save(maleA);
manager.save(maleB);
manager.save(femaleA);
manager.save(femaleB);
trackedEntityInstanceMaleA = trackedEntityInstanceService.getTrackedEntityInstance(maleA);
dataElementA = createDataElement('A');
dataElementA.setValueType(ValueType.INTEGER);
manager.save(dataElementA);
programStageA = createProgramStage('A', 0);
manager.save(programStageA);
programA = createProgram('A', new HashSet<>(), organisationUnitA);
programA.setProgramType(ProgramType.WITH_REGISTRATION);
manager.save(programA);
ProgramStageDataElement programStageDataElement = new ProgramStageDataElement();
programStageDataElement.setDataElement(dataElementA);
programStageDataElement.setProgramStage(programStageA);
programStageDataElementService.addProgramStageDataElement(programStageDataElement);
programStageA.getProgramStageDataElements().add(programStageDataElement);
programStageA.setProgram(programA);
programA.getProgramStages().add(programStageA);
manager.update(programStageA);
manager.update(programA);
createUserAndInjectSecurityContext(true);
manager.flush();
}
use of org.hisp.dhis.trackedentity.TrackedEntityType in project dhis2-core by dhis2.
the class ProgramSupplierAclIntegrationTest method verifyUserHasWriteAccessToTrackedEntityTypeForGroupAccess.
@Test
void verifyUserHasWriteAccessToTrackedEntityTypeForGroupAccess() {
// Given
final User user = createUser("user1");
final TrackedEntityType tet = createTrackedEntityType('A');
manager.save(tet);
UserGroup userGroup = new UserGroup("test-group-tet", singleton(user));
manager.save(userGroup, true);
user.getGroups().add(userGroup);
UserGroupAccess userGroupAccess = new UserGroupAccess(userGroup, AccessStringHelper.DATA_READ_WRITE);
tet.setUserGroupAccesses(singleton(userGroupAccess));
manager.save(tet, false);
final Program program = createProgram('A');
program.setTrackedEntityType(tet);
manager.save(program, false);
manager.flush();
// When
final Map<String, Program> programs = programSupplier.get(getDefaultImportOptions(), singletonList(event));
// Then
assertThat(programs.keySet(), hasSize(1));
assertTrue(aclService.canDataWrite(user, getTrackedEntityType(programs.get(program.getUid()))));
}
use of org.hisp.dhis.trackedentity.TrackedEntityType in project dhis2-core by dhis2.
the class ProgramStageValidationStrategyTest method setUpTest.
@Override
protected void setUpTest() {
final int testYear = Calendar.getInstance().get(Calendar.YEAR) - 1;
userService = _userService;
createUserAndInjectSecurityContext(false, "F_TRACKED_ENTITY_DATAVALUE_ADD", "F_TRACKED_ENTITY_DATAVALUE_DELETE", "F_UNCOMPLETE_EVENT", "F_PROGRAMSTAGE_ADD", "F_PROGRAMSTAGE_DELETE", "F_PROGRAM_PUBLIC_ADD", "F_PROGRAM_PRIVATE_ADD", "F_PROGRAM_DELETE", "F_TRACKED_ENTITY_ADD", "F_TRACKED_ENTITY_UPDATE", "F_TRACKED_ENTITY_DELETE", "F_DATAELEMENT_PUBLIC_ADD", "F_DATAELEMENT_PRIVATE_ADD", "F_DATAELEMENT_DELETE", "F_CATEGORY_COMBO_PUBLIC_ADD", "F_CATEGORY_COMBO_PRIVATE_ADD", "F_CATEGORY_COMBO_DELETE");
User currentUser = currentUserService.getCurrentUser();
UserAccess userAccess1 = new UserAccess(currentUser, "rwrw----");
UserAccess userAccess2 = new UserAccess(currentUser, "rwrw----");
UserAccess userAccess3 = new UserAccess(currentUser, "rwrw----");
organisationUnitA = createOrganisationUnit('A');
organisationUnitA.addUser(currentUser);
organisationUnitA.getSharing().addUserAccess(userAccess1);
currentUser.getTeiSearchOrganisationUnits().add(organisationUnitA);
manager.save(organisationUnitA, false);
userService.updateUser(currentUser);
TrackedEntityType trackedEntityType = createTrackedEntityType('A');
trackedEntityType.getSharing().addUserAccess(userAccess1);
manager.save(trackedEntityType, false);
org.hisp.dhis.trackedentity.TrackedEntityInstance maleA = createTrackedEntityInstance(organisationUnitA);
maleA.setTrackedEntityType(trackedEntityType);
maleA.getSharing().addUserAccess(userAccess1);
maleA.setCreatedBy(currentUser);
manager.save(maleA, false);
trackedEntityInstanceMaleA = trackedEntityInstanceService.getTrackedEntityInstance(maleA);
DataElement dataElementA = createDataElement('A');
dataElementA.setValueType(ValueType.INTEGER);
dataElementA.getSharing().addUserAccess(userAccess1);
manager.save(dataElementA, false);
DataElement dataElementB = createDataElement('B');
dataElementB.setValueType(ValueType.TEXT);
dataElementB.getSharing().addUserAccess(userAccess2);
manager.save(dataElementB, false);
DataElement dataElementC = createDataElement('C');
dataElementC.setValueType(ValueType.INTEGER);
dataElementC.getSharing().addUserAccess(userAccess3);
manager.save(dataElementC, false);
programStageA = createProgramStage('A', 0);
programStageA.setValidationStrategy(ValidationStrategy.ON_COMPLETE);
programStageA.getSharing().addUserAccess(userAccess1);
manager.save(programStageA, false);
programA = createProgram('A', new HashSet<>(), organisationUnitA);
programA.setProgramType(ProgramType.WITH_REGISTRATION);
programA.getSharing().addUserAccess(userAccess1);
manager.save(programA, false);
// Create a compulsory PSDE
ProgramStageDataElement programStageDataElementA = new ProgramStageDataElement();
programStageDataElementA.setDataElement(dataElementA);
programStageDataElementA.setProgramStage(programStageA);
programStageDataElementA.setCompulsory(true);
programStageDataElementA.getSharing().addUserAccess(userAccess1);
manager.save(programStageDataElementA, false);
// Create a compulsory PSDE
ProgramStageDataElement programStageDataElementB = new ProgramStageDataElement();
programStageDataElementB.setDataElement(dataElementB);
programStageDataElementB.setProgramStage(programStageA);
programStageDataElementB.setCompulsory(true);
programStageDataElementB.getSharing().addUserAccess(userAccess1);
manager.save(programStageDataElementB, false);
// Create a NON-compulsory PSDE
ProgramStageDataElement programStageDataElementC = new ProgramStageDataElement();
programStageDataElementC.setDataElement(dataElementC);
programStageDataElementC.setProgramStage(programStageA);
programStageDataElementC.setCompulsory(false);
programStageDataElementC.getSharing().addUserAccess(userAccess1);
manager.save(programStageDataElementC, false);
// Assign all 3 created PSDEs to created ProgramStage programStageA and
// to
// created Program programA
programStageA.getProgramStageDataElements().add(programStageDataElementA);
programStageA.getProgramStageDataElements().add(programStageDataElementB);
programStageA.getProgramStageDataElements().add(programStageDataElementC);
programStageA.setProgram(programA);
programA.getProgramStages().add(programStageA);
manager.update(programStageA);
manager.update(programA);
ProgramInstance programInstance = new ProgramInstance();
programInstance.setProgram(programA);
programInstance.setIncidentDate(new Date());
programInstance.setEnrollmentDate(new Date());
programInstance.setEntityInstance(maleA);
programInstance.getSharing().addUserAccess(userAccess1);
maleA.getProgramInstances().add(programInstance);
manager.save(programInstance, false);
manager.update(maleA);
Period periodA = createPeriod(testYear + "03");
periodA.getSharing().addUserAccess(userAccess1);
manager.save(periodA, false);
CategoryCombo categoryComboA = createCategoryCombo('A');
CategoryOptionCombo categoryOptionComboA = createCategoryOptionCombo('A');
categoryOptionComboA.setCategoryCombo(categoryComboA);
categoryComboA.getSharing().addUserAccess(userAccess1);
categoryOptionComboA.getSharing().addUserAccess(userAccess1);
manager.save(categoryComboA, false);
manager.save(categoryOptionComboA, false);
dataValueAMissing = new org.hisp.dhis.dxf2.events.event.DataValue(dataElementA.getUid(), "");
dataValueBMissing = new org.hisp.dhis.dxf2.events.event.DataValue(dataElementB.getUid(), "");
dataValueCMissing = new org.hisp.dhis.dxf2.events.event.DataValue(dataElementC.getUid(), "");
dataValueA = new org.hisp.dhis.dxf2.events.event.DataValue(dataElementA.getUid(), "42");
dataValueB = new org.hisp.dhis.dxf2.events.event.DataValue(dataElementB.getUid(), "Ford Prefect");
dataValueC = new org.hisp.dhis.dxf2.events.event.DataValue(dataElementC.getUid(), "84");
}
use of org.hisp.dhis.trackedentity.TrackedEntityType in project dhis2-core by dhis2.
the class ObjectBundleServiceTest method testCreateDataSetWithSectionsAndGreyedFields.
@Test
void testCreateDataSetWithSectionsAndGreyedFields() throws IOException {
Map<Class<? extends IdentifiableObject>, List<IdentifiableObject>> metadata = renderService.fromMetadata(new ClassPathResource("dxf2/dataset_with_sections_gf.json").getInputStream(), RenderFormat.JSON);
ObjectBundleParams params = new ObjectBundleParams();
params.setObjectBundleMode(ObjectBundleMode.COMMIT);
params.setImportStrategy(ImportStrategy.CREATE);
params.setObjects(metadata);
ObjectBundle bundle = objectBundleService.create(params);
ObjectBundleValidationReport validate = objectBundleValidationService.validate(bundle);
assertFalse(validate.hasErrorReports());
objectBundleService.commit(bundle);
List<DataSet> dataSets = manager.getAll(DataSet.class);
List<Section> sections = manager.getAll(Section.class);
List<OrganisationUnit> organisationUnits = manager.getAll(OrganisationUnit.class);
List<DataElement> dataElements = manager.getAll(DataElement.class);
List<UserAuthorityGroup> userRoles = manager.getAll(UserAuthorityGroup.class);
List<User> users = manager.getAll(User.class);
List<DataElementOperand> dataElementOperands = manager.getAll(DataElementOperand.class);
List<TrackedEntityType> trackedEntityTypes = manager.getAll(TrackedEntityType.class);
List<OrganisationUnitLevel> organisationUnitLevels = manager.getAll(OrganisationUnitLevel.class);
assertFalse(organisationUnits.isEmpty());
assertEquals(1, organisationUnitLevels.size());
assertEquals(1, trackedEntityTypes.size());
assertFalse(dataElements.isEmpty());
assertFalse(users.isEmpty());
assertFalse(userRoles.isEmpty());
assertEquals(1, dataSets.size());
assertEquals(2, sections.size());
assertEquals(1, dataElementOperands.size());
DataSet dataSet = dataSets.get(0);
assertEquals(2, dataSet.getSections().size());
Section section1 = sections.get(0);
Section section2 = sections.get(1);
assertEquals(1, section1.getDataElements().size());
assertEquals(1, section2.getDataElements().size());
assertNotNull(section1.getDataSet());
assertNotNull(section2.getDataSet());
Section section = manager.get(Section.class, "C50M0WxaI7y");
assertNotNull(section.getDataSet());
assertEquals(1, section.getCategoryCombos().size());
assertEquals(1, section.getGreyedFields().size());
CategoryCombo categoryCombo = manager.get(CategoryCombo.class, "faV8QvLgIwB");
assertNotNull(categoryCombo);
Category category = manager.get(Category.class, "XJGLlMAMCcn");
assertNotNull(category);
CategoryOption categoryOption1 = manager.get(CategoryOption.class, "JYiFOMKa25J");
CategoryOption categoryOption2 = manager.get(CategoryOption.class, "tdaMRD34m8o");
assertNotNull(categoryOption1);
assertNotNull(categoryOption2);
}
use of org.hisp.dhis.trackedentity.TrackedEntityType in project dhis2-core by dhis2.
the class TrackedEntityTypeObjectBundleHookTest method setUp.
@BeforeEach
public void setUp() {
trackedEntityType = new TrackedEntityType();
when(bundle.getPreheat()).thenReturn(preheat);
when(bundle.getPreheatIdentifier()).thenReturn(PreheatIdentifier.UID, PreheatIdentifier.UID);
}
Aggregations