use of org.hisp.dhis.program.ProgramService in project dhis2-core by dhis2.
the class TrackedEntityInstanceAttributesAggregateTest method populatePrerequisites.
private void populatePrerequisites(boolean removeOwnership) {
doInTransaction(() -> {
ProgramStage programStageA = createProgramStage(programB, true);
ProgramStage programStageB = createProgramStage(programB, true);
ProgramStage programStageA1 = createProgramStage(programA, true);
ProgramStage programStageA2 = createProgramStage(programA, true);
// Create 5 Tracked Entity Attributes (named A .. E)
IntStream.range(A, F).mapToObj(i -> Character.toString((char) i)).forEach(c -> attributeService.addTrackedEntityAttribute(createTrackedEntityAttribute(c.charAt(0), ValueType.TEXT)));
// Transform the Tracked Entity Attributes into a List of
// TrackedEntityTypeAttribute
List<TrackedEntityTypeAttribute> teatList = IntStream.range(A, C).mapToObj(i -> Character.toString((char) i)).map(s -> new TrackedEntityTypeAttribute(trackedEntityTypeA, attributeService.getTrackedEntityAttributeByName("Attribute" + s))).collect(Collectors.toList());
// Assign 2 (A, B) TrackedEntityTypeAttribute to Tracked Entity Type
// A
trackedEntityTypeA.getTrackedEntityTypeAttributes().addAll(teatList);
// Make TET public
trackedEntityTypeA.setPublicAccess(AccessStringHelper.FULL);
manager.update(trackedEntityTypeA);
programB = createProgram('B', new HashSet<>(), organisationUnitA);
programB.setProgramType(ProgramType.WITH_REGISTRATION);
programB.setCategoryCombo(categoryComboA);
programB.setAccessLevel(AccessLevel.PROTECTED);
programB.setUid(CodeGenerator.generateUid());
programB.setCode(RandomStringUtils.randomAlphanumeric(10));
Set<UserAccess> programBUserAccess = new HashSet<>();
programBUserAccess.add(new UserAccess(currentUserService.getCurrentUser(), AccessStringHelper.FULL));
programB.setUserAccesses(programBUserAccess);
programB.setProgramStages(Stream.of(programStageA, programStageB).collect(Collectors.toCollection(HashSet::new)));
programService.addProgram(programB);
programA = createProgram('A', new HashSet<>(), organisationUnitA);
programA.setProgramType(ProgramType.WITH_REGISTRATION);
programA.setCategoryCombo(categoryComboA);
programA.setUid(CodeGenerator.generateUid());
programA.setCode(RandomStringUtils.randomAlphanumeric(10));
programA.setProgramStages(Stream.of(programStageA1, programStageA2).collect(Collectors.toCollection(HashSet::new)));
programService.addProgram(programA);
// Because access strings isnt getting persisted with programService
// methods for some reason
programB.setPublicAccess(AccessStringHelper.FULL);
manager.update(programB);
programA.setPublicAccess(AccessStringHelper.FULL);
manager.update(programA);
programStageA.setPublicAccess(AccessStringHelper.FULL);
manager.update(programStageA);
programStageB.setPublicAccess(AccessStringHelper.FULL);
manager.update(programStageB);
programStageA1.setPublicAccess(AccessStringHelper.FULL);
manager.update(programStageA1);
programStageA2.setPublicAccess(AccessStringHelper.FULL);
manager.update(programStageA2);
// Assign ProgramTrackedEntityAttribute C to program A
List<ProgramTrackedEntityAttribute> pteaListA = IntStream.range(C, D).mapToObj(i -> Character.toString((char) i)).map(s -> new ProgramTrackedEntityAttribute(programA, attributeService.getTrackedEntityAttributeByName("Attribute" + s))).collect(Collectors.toList());
// Assign ProgramTrackedEntityAttribute D, E to program B
List<ProgramTrackedEntityAttribute> pteaListB = IntStream.range(D, F).mapToObj(i -> Character.toString((char) i)).map(s -> new ProgramTrackedEntityAttribute(programB, attributeService.getTrackedEntityAttributeByName("Attribute" + s))).collect(Collectors.toList());
programA.getProgramAttributes().addAll(pteaListA);
programB.getProgramAttributes().addAll(pteaListB);
manager.update(programA);
manager.update(programB);
// Create a TEI associated to program B
final org.hisp.dhis.trackedentity.TrackedEntityInstance trackedEntityInstance = persistTrackedEntityInstance(ImmutableMap.of("program", programB));
ProgramInstance piB = new ProgramInstance(programB, trackedEntityInstance, organisationUnitA);
piB.setEnrollmentDate(new Date());
manager.save(piB);
ProgramInstance piA = new ProgramInstance(programA, trackedEntityInstance, organisationUnitA);
piA.setEnrollmentDate(new Date());
manager.save(piA);
if (removeOwnership) {
trackerOwnershipManager.assignOwnership(trackedEntityInstance, programB, organisationUnitB, true, true);
trackerOwnershipManager.assignOwnership(trackedEntityInstance, programA, organisationUnitA, true, true);
} else {
trackerOwnershipManager.assignOwnership(trackedEntityInstance, programB, organisationUnitA, true, true);
trackerOwnershipManager.assignOwnership(trackedEntityInstance, programA, organisationUnitA, true, true);
}
// Assign Attribute A,B,E to Tracked Entity Instance
attributeValueService.addTrackedEntityAttributeValue(new TrackedEntityAttributeValue(attributeService.getTrackedEntityAttributeByName("AttributeA"), trackedEntityInstance, "A"));
attributeValueService.addTrackedEntityAttributeValue(new TrackedEntityAttributeValue(attributeService.getTrackedEntityAttributeByName("AttributeB"), trackedEntityInstance, "B"));
attributeValueService.addTrackedEntityAttributeValue(new TrackedEntityAttributeValue(attributeService.getTrackedEntityAttributeByName("AttributeC"), trackedEntityInstance, "C"));
attributeValueService.addTrackedEntityAttributeValue(new TrackedEntityAttributeValue(attributeService.getTrackedEntityAttributeByName("AttributeE"), trackedEntityInstance, "E"));
});
}
use of org.hisp.dhis.program.ProgramService in project dhis2-core by dhis2.
the class EnrollmentAnalyticsDimensionsServiceTest method setup.
@BeforeEach
void setup() {
ProgramService programService = mock(ProgramService.class);
Program program = mock(Program.class);
when(programService.getProgram(any())).thenReturn(program);
when(program.getDataElements()).thenReturn(allValueTypeDataElements());
when(program.getProgramIndicators()).thenReturn(Collections.emptySet());
when(program.getTrackedEntityAttributes()).thenReturn(allValueTypeTEAs());
enrollmentAnalyticsDimensionsService = new DefaultEnrollmentAnalyticsDimensionsService(programService);
}
Aggregations