@Test
public void testExtensionEnum() throws Exception {
Session session = getFactory().openSession();
QName valueName = new QName(NS_P, "enumType");
ItemDefinition def = getDefinition(GenericObjectType.class, ItemPath.create(ObjectType.F_EXTENSION, valueName));
AssertJUnit.assertNotNull(def);
PrismProperty item = (PrismProperty) def.instantiate();
item.setRealValue(BeforeAfterType.AFTER);
def.toMutable().setName(valueName);
RAnyConverter converter = new RAnyConverter(prismContext, extItemDictionary);
Set<RAnyValue<?>> values;
try {
values = converter.convertToRValue(item, false, RObjectExtensionType.EXTENSION);
AssertJUnit.fail("Should have throw serialization related exception after creating ext item");
} catch (DtoTranslationException ex) {
AssertJUnit.assertTrue(SerializationRelatedException.class.equals(ex.getCause().getClass()));
}
values = converter.convertToRValue(item, false, RObjectExtensionType.EXTENSION);
AssertJUnit.assertEquals("Expected only one enum value, but was " + values.size(), 1, values.size());
RAnyValue value = values.iterator().next();
AssertJUnit.assertEquals("after", value.getValue());
session.close();
}