Search in sources :

Example 1 with ProgramService

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"));
    });
}
Also used : IntStream(java.util.stream.IntStream) BeforeEach(org.junit.jupiter.api.BeforeEach) Date(java.util.Date) ValueType(org.hisp.dhis.common.ValueType) TrackedEntityAttributeValueService(org.hisp.dhis.trackedentityattributevalue.TrackedEntityAttributeValueService) MockCurrentUserService(org.hisp.dhis.mock.MockCurrentUserService) Autowired(org.springframework.beans.factory.annotation.Autowired) TrackedEntityAttributeValue(org.hisp.dhis.trackedentityattributevalue.TrackedEntityAttributeValue) Program(org.hisp.dhis.program.Program) TrackedEntityAttributeService(org.hisp.dhis.trackedentity.TrackedEntityAttributeService) HashSet(java.util.HashSet) ProgramInstance(org.hisp.dhis.program.ProgramInstance) ImmutableMap(org.testcontainers.shaded.com.google.common.collect.ImmutableMap) Matchers.hasSize(org.hamcrest.Matchers.hasSize) User(org.hisp.dhis.user.User) MatcherAssert.assertThat(org.hamcrest.MatcherAssert.assertThat) TrackedEntityInstance(org.hisp.dhis.dxf2.events.trackedentity.TrackedEntityInstance) TrackedEntityInstanceService(org.hisp.dhis.dxf2.events.trackedentity.TrackedEntityInstanceService) AccessStringHelper(org.hisp.dhis.security.acl.AccessStringHelper) TrackedEntityInstanceQueryParams(org.hisp.dhis.trackedentity.TrackedEntityInstanceQueryParams) TrackedEntityInstanceParams(org.hisp.dhis.dxf2.events.TrackedEntityInstanceParams) Set(java.util.Set) ReflectionTestUtils(org.springframework.test.util.ReflectionTestUtils) Collectors(java.util.stream.Collectors) Attribute(org.hisp.dhis.dxf2.events.trackedentity.Attribute) TrackedEntityTypeAttribute(org.hisp.dhis.trackedentity.TrackedEntityTypeAttribute) ProgramStage(org.hisp.dhis.program.ProgramStage) Sets(com.google.common.collect.Sets) Test(org.junit.jupiter.api.Test) TrackerOwnershipManager(org.hisp.dhis.trackedentity.TrackerOwnershipManager) List(java.util.List) Stream(java.util.stream.Stream) UserAccess(org.hisp.dhis.user.UserAccess) ProgramType(org.hisp.dhis.program.ProgramType) ProgramTrackedEntityAttribute(org.hisp.dhis.program.ProgramTrackedEntityAttribute) Matchers.is(org.hamcrest.Matchers.is) RandomStringUtils(org.apache.commons.lang3.RandomStringUtils) CodeGenerator(org.hisp.dhis.common.CodeGenerator) TrackerTest(org.hisp.dhis.dxf2.TrackerTest) ProgramService(org.hisp.dhis.program.ProgramService) AccessLevel(org.hisp.dhis.common.AccessLevel) UserAccess(org.hisp.dhis.user.UserAccess) ProgramInstance(org.hisp.dhis.program.ProgramInstance) TrackedEntityAttributeValue(org.hisp.dhis.trackedentityattributevalue.TrackedEntityAttributeValue) Date(java.util.Date) ProgramTrackedEntityAttribute(org.hisp.dhis.program.ProgramTrackedEntityAttribute) TrackedEntityTypeAttribute(org.hisp.dhis.trackedentity.TrackedEntityTypeAttribute) ProgramStage(org.hisp.dhis.program.ProgramStage) HashSet(java.util.HashSet)

Example 2 with ProgramService

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);
}
Also used : ProgramService(org.hisp.dhis.program.ProgramService) Program(org.hisp.dhis.program.Program) BeforeEach(org.junit.jupiter.api.BeforeEach)

Aggregations

Program (org.hisp.dhis.program.Program)2 ProgramService (org.hisp.dhis.program.ProgramService)2 BeforeEach (org.junit.jupiter.api.BeforeEach)2 Sets (com.google.common.collect.Sets)1 Date (java.util.Date)1 HashSet (java.util.HashSet)1 List (java.util.List)1 Set (java.util.Set)1 Collectors (java.util.stream.Collectors)1 IntStream (java.util.stream.IntStream)1 Stream (java.util.stream.Stream)1 RandomStringUtils (org.apache.commons.lang3.RandomStringUtils)1 MatcherAssert.assertThat (org.hamcrest.MatcherAssert.assertThat)1 Matchers.hasSize (org.hamcrest.Matchers.hasSize)1 Matchers.is (org.hamcrest.Matchers.is)1 AccessLevel (org.hisp.dhis.common.AccessLevel)1 CodeGenerator (org.hisp.dhis.common.CodeGenerator)1 ValueType (org.hisp.dhis.common.ValueType)1 TrackerTest (org.hisp.dhis.dxf2.TrackerTest)1 TrackedEntityInstanceParams (org.hisp.dhis.dxf2.events.TrackedEntityInstanceParams)1