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());
}
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();
}
});
}
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());
}
});
}
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());
}
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());
}
Aggregations