if (definition.getValueEnumerationRef() != null) { addAnnotation(A_VALUE_ENUMERATION_REF, definition.getValueEnumerationRef(), appinfo);
@Override public void validate(PrismPropertyDefinition<String> propDef, String name) throws Exception { assertNotNull("No definition for preferredLanguage in user", propDef); assertEquals("Wrong preferredLanguage displayName", "Language", propDef.getDisplayName()); PrismReferenceValue valueEnumerationRef = propDef.getValueEnumerationRef(); assertNotNull("No valueEnumerationRef for preferredLanguage", valueEnumerationRef); assertEquals("Wrong valueEnumerationRef OID for preferredLanguage", LOOKUP_LANGUAGES_OID, valueEnumerationRef.getOid()); assertTrue(name+" of "+user+" is readable", !propDef.canRead()); assertTrue(name+" of "+user+" is creatable", !propDef.canAdd()); assertTrue(name+" of "+user+" is modifiable", !propDef.canModify()); } });
@Override public void validate(PrismPropertyDefinition<String> propDef, String name) throws Exception { assertNotNull("No definition for preferredLanguage in user", propDef); assertEquals("Wrong preferredLanguage displayName", "Language", propDef.getDisplayName()); PrismReferenceValue valueEnumerationRef = propDef.getValueEnumerationRef(); assertNotNull("No valueEnumerationRef for preferredLanguage", valueEnumerationRef); assertEquals("Wrong valueEnumerationRef OID for preferredLanguage", LOOKUP_LANGUAGES_OID, valueEnumerationRef.getOid()); assertTrue(name+" is readable", !propDef.canRead()); assertTrue(name+" is creatable", !propDef.canAdd()); assertTrue(name+" is modifiable", !propDef.canModify()); } });
@Test public void testUserType() throws Exception { MidPointPrismContextFactory factory = getContextFactory(); PrismContext context = factory.createInitializedPrismContext(); SchemaRegistry schemaRegistry = context.getSchemaRegistry(); PrismObjectDefinition<UserType> userDefinition = schemaRegistry.findObjectDefinitionByCompileTimeClass(UserType.class); assertNotNull("No user definition", userDefinition); System.out.println("testUserType:"); System.out.println(userDefinition.debugDump()); assertFalse("User definition is marked as runtime", userDefinition.isRuntimeSchema()); PrismPropertyDefinition<PolyString> nameDef = userDefinition.findPropertyDefinition(ObjectType.F_NAME); assertNotNull("No name definition", nameDef); PrismContainerDefinition extensionDef = userDefinition.findContainerDefinition(UserType.F_EXTENSION); assertNotNull("No 'extension' definition", extensionDef); assertTrue("Extension definition is NOT marked as runtime", extensionDef.isRuntimeSchema()); PrismPropertyDefinition<PolyString> givenNameDef = userDefinition.findPropertyDefinition(UserType.F_GIVEN_NAME); assertNotNull("No givenName definition", givenNameDef); PrismPropertyDefinition<String> preferredLanguageDef = userDefinition.findPropertyDefinition(UserType.F_PREFERRED_LANGUAGE); assertNotNull("No preferredLanguage definition", preferredLanguageDef); PrismReferenceValue preferredLanguageValueEnumerationRef = preferredLanguageDef.getValueEnumerationRef(); assertNotNull("No valueEnumerationRef in preferredLanguage definition", preferredLanguageValueEnumerationRef); assertEquals("Wrong OID in valueEnumerationRef in preferredLanguage definition", SystemObjectsType.LOOKUP_LANGUAGES.value(), preferredLanguageValueEnumerationRef.getOid()); assertEquals("Wrong type in valueEnumerationRef in preferredLanguage definition", LookupTableType.COMPLEX_TYPE, preferredLanguageValueEnumerationRef.getTargetType()); // Just make sure this does not end with NPE or stack overflow PrismObjectDefinition<UserType> shallowClone = userDefinition.clone(); PrismObjectDefinition<UserType> deepClone = userDefinition.deepClone(false, null); PrismObjectDefinition<UserType> ultraDeepClone = userDefinition.deepClone(true, null); }
assertEquals("Wrong preferredLanguage displayName", "Language", preferredLanguageDef.getDisplayName()); assertTrue("preferredLanguage not readable", preferredLanguageDef.canRead()); PrismReferenceValue valueEnumerationRef = preferredLanguageDef.getValueEnumerationRef(); assertNotNull("No valueEnumerationRef for preferredLanguage", valueEnumerationRef); assertEquals("Wrong valueEnumerationRef OID for preferredLanguage", LOOKUP_LANGUAGES_OID, valueEnumerationRef.getOid()); assertEquals("Wrong timezone displayName", "FocusType.timezone", timezoneDef.getDisplayName()); assertTrue("timezone not readable", timezoneDef.canRead()); valueEnumerationRef = timezoneDef.getValueEnumerationRef(); assertNotNull("No valueEnumerationRef for timezone", valueEnumerationRef); assertEquals("Wrong valueEnumerationRef OID for timezone", SystemObjectsType.LOOKUP_TIMEZONES.value(), valueEnumerationRef.getOid());
assertEquals("Wrong preferredLanguage displayName", "Language", propDef.getDisplayName()); assertTrue("preferredLanguage not readable", propDef.canRead()); PrismReferenceValue valueEnumerationRef = propDef.getValueEnumerationRef(); assertNotNull("No valueEnumerationRef for preferredLanguage", valueEnumerationRef); assertEquals("Wrong valueEnumerationRef OID for preferredLanguage", LOOKUP_LANGUAGES_OID, valueEnumerationRef.getOid());
assertEquals("Wrong preferredLanguage displayName", "Language", propDef.getDisplayName()); assertTrue("preferredLanguage not readable", propDef.canRead()); PrismReferenceValue valueEnumerationRef = propDef.getValueEnumerationRef(); assertNotNull("No valueEnumerationRef for preferredLanguage", valueEnumerationRef); assertEquals("Wrong valueEnumerationRef OID for preferredLanguage", LOOKUP_LANGUAGES_OID, valueEnumerationRef.getOid());
assertTrue("costCenter not creatable", costCenterDef.canAdd()); assertTrue("costCenter not modifiable", costCenterDef.canModify()); PrismReferenceValue valueEnumerationRef = costCenterDef.getValueEnumerationRef(); assertNull("valueEnumerationRef for costCente sneaked in", valueEnumerationRef); assertTrue("preferredLanguage not creatable", preferredLanguageDef.canAdd()); assertTrue("preferredLanguage not modifiable", preferredLanguageDef.canModify()); valueEnumerationRef = preferredLanguageDef.getValueEnumerationRef(); assertNotNull("valueEnumerationRef for preferredLanguage missing", valueEnumerationRef); assertEquals("wrong OID in valueEnumerationRef for preferredLanguage missing",
assertNotNull("No definition for preferredLanguage in user", preferredLanguageDef); assertEquals("Wrong preferredLanguage displayName", "Language", preferredLanguageDef.getDisplayName()); PrismReferenceValue valueEnumerationRef = preferredLanguageDef.getValueEnumerationRef(); assertNotNull("No valueEnumerationRef for preferredLanguage", valueEnumerationRef); assertEquals("Wrong valueEnumerationRef OID for preferredLanguage", LOOKUP_LANGUAGES_OID, valueEnumerationRef.getOid());