Search in sources :

Example 16 with OptionSet

use of org.hisp.dhis.option.OptionSet in project dhis2-core by dhis2.

the class OptionObjectBundleHookTest method validate.

@Test
void validate() {
    OptionSet optionSet = new OptionSet();
    optionSet.setUid("optionSet1");
    Option option = new Option();
    option.setName("optionName");
    option.setCode("optionCode");
    optionSet.addOption(option);
    OptionSet persistedOptionSet = new OptionSet();
    persistedOptionSet.setUid("optionSet1");
    Option persistedOption = new Option();
    persistedOption.setName("optionName");
    persistedOption.setCode("optionCode");
    persistedOptionSet.addOption(persistedOption);
    preheat.put(PreheatIdentifier.UID, persistedOptionSet);
    ObjectBundleParams objectBundleParams = new ObjectBundleParams();
    objectBundleParams.setPreheatIdentifier(PreheatIdentifier.UID);
    ObjectBundle bundle = new ObjectBundle(objectBundleParams, preheat, Collections.singletonMap(OptionSet.class, Collections.singletonList(persistedOptionSet)));
    List<ErrorReport> errors = hook.validate(option, bundle);
    Assertions.assertNotNull(errors);
    Assertions.assertEquals(1, errors.size());
    Assertions.assertEquals(ErrorCode.E4028, errors.get(0).getErrorCode());
}
Also used : ErrorReport(org.hisp.dhis.feedback.ErrorReport) ObjectBundleParams(org.hisp.dhis.dxf2.metadata.objectbundle.ObjectBundleParams) ObjectBundle(org.hisp.dhis.dxf2.metadata.objectbundle.ObjectBundle) Option(org.hisp.dhis.option.Option) OptionSet(org.hisp.dhis.option.OptionSet) Test(org.junit.jupiter.api.Test)

Example 17 with OptionSet

use of org.hisp.dhis.option.OptionSet in project dhis2-core by dhis2.

the class ObjectBundleServiceTest method testPreheatValidationsWithCatCombo.

@Test
void testPreheatValidationsWithCatCombo() throws IOException {
    Map<Class<? extends IdentifiableObject>, List<IdentifiableObject>> metadata = renderService.fromMetadata(new ClassPathResource("dxf2/de_validate1.json").getInputStream(), RenderFormat.JSON);
    CategoryCombo categoryCombo = manager.getByName(CategoryCombo.class, "default");
    categoryCombo.setUid("p0KPaWEg3cf");
    manager.update(categoryCombo);
    OptionSet optionSet = new OptionSet("OptionSet: pQYCiuosBnZ", ValueType.TEXT);
    optionSet.setAutoFields();
    optionSet.setUid("pQYCiuosBnZ");
    manager.save(optionSet);
    ObjectBundleParams params = new ObjectBundleParams();
    params.setObjectBundleMode(ObjectBundleMode.VALIDATE);
    params.setImportStrategy(ImportStrategy.CREATE);
    params.setObjects(metadata);
    ObjectBundle bundle = objectBundleService.create(params);
    ObjectBundleValidationReport validate = objectBundleValidationService.validate(bundle);
    assertTrue(validate.hasErrorReports());
    validate.forEachErrorReport(errorReport -> {
        assertTrue(errorReport instanceof PreheatErrorReport);
        PreheatErrorReport preheatErrorReport = (PreheatErrorReport) errorReport;
        assertEquals(PreheatIdentifier.UID, preheatErrorReport.getPreheatIdentifier());
        if (preheatErrorReport.getValue() instanceof CategoryCombo) {
            fail();
        } else if (preheatErrorReport.getValue() instanceof User) {
            assertEquals("GOLswS44mh8", preheatErrorReport.getObjectReference().getUid());
        } else if (preheatErrorReport.getValue() instanceof OptionSet) {
            fail();
        }
    });
}
Also used : User(org.hisp.dhis.user.User) CategoryCombo(org.hisp.dhis.category.CategoryCombo) ObjectBundleValidationReport(org.hisp.dhis.dxf2.metadata.objectbundle.feedback.ObjectBundleValidationReport) PreheatErrorReport(org.hisp.dhis.preheat.PreheatErrorReport) List(java.util.List) OptionSet(org.hisp.dhis.option.OptionSet) ClassPathResource(org.springframework.core.io.ClassPathResource) IdentifiableObject(org.hisp.dhis.common.IdentifiableObject) TransactionalIntegrationTest(org.hisp.dhis.TransactionalIntegrationTest) Test(org.junit.jupiter.api.Test)

Example 18 with OptionSet

use of org.hisp.dhis.option.OptionSet in project dhis2-core by dhis2.

the class ObjectBundleServiceTest method testPreheatValidations.

@Test
void testPreheatValidations() throws IOException {
    Map<Class<? extends IdentifiableObject>, List<IdentifiableObject>> metadata = renderService.fromMetadata(new ClassPathResource("dxf2/de_validate1.json").getInputStream(), RenderFormat.JSON);
    ObjectBundleParams params = new ObjectBundleParams();
    params.setObjectBundleMode(ObjectBundleMode.VALIDATE);
    params.setImportStrategy(ImportStrategy.CREATE);
    params.setObjects(metadata);
    ObjectBundle bundle = objectBundleService.create(params);
    ObjectBundleValidationReport validate = objectBundleValidationService.validate(bundle);
    assertFalse(validate.isEmpty());
    assertTrue(validate.hasErrorReports());
    validate.forEachErrorReport(errorReport -> {
        assertTrue(errorReport instanceof PreheatErrorReport);
        PreheatErrorReport preheatErrorReport = (PreheatErrorReport) errorReport;
        assertEquals(PreheatIdentifier.UID, preheatErrorReport.getPreheatIdentifier());
        if (preheatErrorReport.getValue() instanceof CategoryCombo) {
            assertEquals("p0KPaWEg3cf", preheatErrorReport.getObjectReference().getUid());
        } else if (preheatErrorReport.getValue() instanceof User) {
            assertEquals("GOLswS44mh8", preheatErrorReport.getObjectReference().getUid());
        } else if (preheatErrorReport.getValue() instanceof OptionSet) {
            assertEquals("pQYCiuosBnZ", preheatErrorReport.getObjectReference().getUid());
        }
    });
}
Also used : User(org.hisp.dhis.user.User) ObjectBundleValidationReport(org.hisp.dhis.dxf2.metadata.objectbundle.feedback.ObjectBundleValidationReport) PreheatErrorReport(org.hisp.dhis.preheat.PreheatErrorReport) CategoryCombo(org.hisp.dhis.category.CategoryCombo) List(java.util.List) OptionSet(org.hisp.dhis.option.OptionSet) ClassPathResource(org.springframework.core.io.ClassPathResource) IdentifiableObject(org.hisp.dhis.common.IdentifiableObject) TransactionalIntegrationTest(org.hisp.dhis.TransactionalIntegrationTest) Test(org.junit.jupiter.api.Test)

Example 19 with OptionSet

use of org.hisp.dhis.option.OptionSet in project dhis2-core by dhis2.

the class CsvMetadataImportTest method testImportOptionGroupSet.

@Test
void testImportOptionGroupSet() throws IOException {
    ImportReport importReport = runImport("metadata/option_set.csv", CsvImportClass.OPTION_SET);
    assertEquals(5, importReport.getStats().getCreated());
    OptionSet optionSetA = manager.get(OptionSet.class, "xmRubJIhmaK");
    assertNotNull(optionSetA);
    assertEquals(2, optionSetA.getOptions().size());
    OptionSet optionSetB = manager.get(OptionSet.class, "QYDAByFgTr1");
    assertNotNull(optionSetB);
    assertEquals(1, optionSetB.getOptions().size());
    importReport = runImport("metadata/option_groups.csv", CsvImportClass.OPTION_GROUP);
    assertEquals(2, importReport.getStats().getCreated());
    OptionGroup optionGroupA = manager.get(OptionGroup.class, "UeHtizvXbx6");
    assertNotNull(optionGroupA);
    assertEquals(2, optionGroupA.getMembers().size());
    OptionGroup optionGroupB = manager.get(OptionGroup.class, "EVYjFX6Ez0a");
    assertNotNull(optionGroupB);
    assertEquals(1, optionGroupB.getMembers().size());
    importReport = runImport("metadata/option_group_set.csv", CsvImportClass.OPTION_GROUP_SET);
    assertEquals(2, importReport.getStats().getCreated());
    OptionGroupSet optionGroupSetA = manager.get(OptionGroupSet.class, "FB9i0Jl2R80");
    assertNotNull(optionGroupSetA);
    OptionGroupSet optionGroupSetB = manager.get(OptionGroupSet.class, "K30djctzUtN");
    assertNotNull(optionGroupSetB);
    importReport = runImport("metadata/option_group_set_members.csv", CsvImportClass.OPTION_GROUP_SET_MEMBERSHIP);
    assertEquals(2, importReport.getStats().getUpdated());
    OptionGroupSet ogsA = optionService.getOptionGroupSet("FB9i0Jl2R80");
    OptionGroupSet ogsB = optionService.getOptionGroupSet("K30djctzUtN");
    assertEquals(1, ogsA.getMembers().size());
    assertEquals(1, ogsB.getMembers().size());
    assertEquals(2, ogsA.getMembers().get(0).getMembers().size());
}
Also used : OptionGroupSet(org.hisp.dhis.option.OptionGroupSet) OptionGroup(org.hisp.dhis.option.OptionGroup) ImportReport(org.hisp.dhis.dxf2.metadata.feedback.ImportReport) OptionSet(org.hisp.dhis.option.OptionSet) Test(org.junit.jupiter.api.Test) DhisSpringTest(org.hisp.dhis.DhisSpringTest)

Example 20 with OptionSet

use of org.hisp.dhis.option.OptionSet in project dhis2-core by dhis2.

the class CsvMetadataImportTest method testOptionSetMergeDuplicate.

@Test
void testOptionSetMergeDuplicate() throws IOException {
    // Import 1 OptionSet with 3 Options
    ImportReport importReport = runImport("metadata/optionSet_add.csv", CsvImportClass.OPTION_SET);
    assertEquals(4, importReport.getStats().getCreated());
    // Send payload with 5 Options, 2 new and 3 old from above
    importReport = runImport("metadata/optionSet_update_duplicate.csv", CsvImportClass.OPTION_SET, null, params -> {
        params.setIdentifier(PreheatIdentifier.CODE);
        params.setMergeMode(MergeMode.MERGE);
    });
    // Only 2 new Options are added
    assertEquals(2, importReport.getStats().getCreated());
    OptionSet optionSet = optionService.getOptionSetByCode("COLOR");
    // Total 5 Options added
    List<Option> options = optionSet.getOptions();
    assertEquals(5, options.size());
}
Also used : Assertions.assertNotNull(org.junit.jupiter.api.Assertions.assertNotNull) BeforeEach(org.junit.jupiter.api.BeforeEach) ImportReport(org.hisp.dhis.dxf2.metadata.feedback.ImportReport) DataElementService(org.hisp.dhis.dataelement.DataElementService) PreheatIdentifier(org.hisp.dhis.preheat.PreheatIdentifier) CsvImportClass(org.hisp.dhis.dxf2.csv.CsvImportClass) ClassPathResource(org.springframework.core.io.ClassPathResource) Autowired(org.springframework.beans.factory.annotation.Autowired) OrganisationUnitService(org.hisp.dhis.organisationunit.OrganisationUnitService) ArrayList(java.util.ArrayList) OptionGroup(org.hisp.dhis.option.OptionGroup) IdentifiableObjectManager(org.hisp.dhis.common.IdentifiableObjectManager) User(org.hisp.dhis.user.User) Assertions.assertEquals(org.junit.jupiter.api.Assertions.assertEquals) CsvImportService(org.hisp.dhis.dxf2.csv.CsvImportService) OptionService(org.hisp.dhis.option.OptionService) UserService(org.hisp.dhis.user.UserService) OptionGroupSet(org.hisp.dhis.option.OptionGroupSet) IOException(java.io.IOException) SchemaService(org.hisp.dhis.schema.SchemaService) MergeMode(org.hisp.dhis.common.MergeMode) Consumer(java.util.function.Consumer) Test(org.junit.jupiter.api.Test) List(java.util.List) Option(org.hisp.dhis.option.Option) CsvImportOptions(org.hisp.dhis.dxf2.csv.CsvImportOptions) OptionSet(org.hisp.dhis.option.OptionSet) DhisSpringTest(org.hisp.dhis.DhisSpringTest) InputStream(java.io.InputStream) ImportReport(org.hisp.dhis.dxf2.metadata.feedback.ImportReport) Option(org.hisp.dhis.option.Option) OptionSet(org.hisp.dhis.option.OptionSet) Test(org.junit.jupiter.api.Test) DhisSpringTest(org.hisp.dhis.DhisSpringTest)

Aggregations

OptionSet (org.hisp.dhis.option.OptionSet)40 Option (org.hisp.dhis.option.Option)24 Test (org.junit.jupiter.api.Test)20 DataElement (org.hisp.dhis.dataelement.DataElement)12 List (java.util.List)10 ArrayList (java.util.ArrayList)8 DhisSpringTest (org.hisp.dhis.DhisSpringTest)6 CategoryCombo (org.hisp.dhis.category.CategoryCombo)6 OptionGroup (org.hisp.dhis.option.OptionGroup)6 OptionGroupSet (org.hisp.dhis.option.OptionGroupSet)6 HashSet (java.util.HashSet)5 ImportReport (org.hisp.dhis.dxf2.metadata.feedback.ImportReport)5 ObjectBundle (org.hisp.dhis.dxf2.metadata.objectbundle.ObjectBundle)5 OrganisationUnit (org.hisp.dhis.organisationunit.OrganisationUnit)5 User (org.hisp.dhis.user.User)5 ClassPathResource (org.springframework.core.io.ClassPathResource)5 IOException (java.io.IOException)4 InputStream (java.io.InputStream)4 Map (java.util.Map)4 CategoryOption (org.hisp.dhis.category.CategoryOption)4