/** * Test fetching and translating resource schema. * * @throws Exception */ @Test public void test400FetchResourceSchema() throws Exception { final String TEST_NAME = "test400FetchResourceSchema"; TestUtil.displayTestTile(this, TEST_NAME); // GIVEN // WHEN // The schema was fetched during test init. Now just check if it was OK. // THEN AssertJUnit.assertNotNull(resourceSchema); System.out.println(resourceSchema.debugDump()); Document xsdSchema = resourceSchema.serializeToXsd(); System.out.println( "-------------------------------------------------------------------------------------"); System.out.println(DOMUtil.printDom(xsdSchema)); System.out.println( "-------------------------------------------------------------------------------------"); ObjectClassComplexTypeDefinition accountDefinition = resourceSchema.findObjectClassDefinition( new QName( ResourceTypeUtil.getResourceNamespace(resourceType), ProvisioningTestUtil.OBJECT_CLASS_INETORGPERSON_NAME)); AssertJUnit.assertNotNull(accountDefinition); AssertJUnit.assertFalse( "No identifiers for account object class ", accountDefinition.getIdentifiers().isEmpty()); PrismPropertyDefinition uidDefinition = accountDefinition.findAttributeDefinition( new QName( ResourceTypeUtil.getResourceNamespace(resourceType), ProvisioningTestUtil.RESOURCE_OPENDJ_PRIMARY_IDENTIFIER_LOCAL_NAME)); AssertJUnit.assertNotNull(uidDefinition); for (Definition def : resourceSchema.getDefinitions()) { if (def instanceof ResourceAttributeContainerDefinition) { ResourceAttributeContainerDefinition rdef = (ResourceAttributeContainerDefinition) def; assertNotEmpty("No type name in object class", rdef.getTypeName()); assertNotEmpty( "No native object class for " + rdef.getTypeName(), rdef.getNativeObjectClass()); // This is maybe not that important, but just for a sake of // completeness assertNotEmpty("No name for " + rdef.getTypeName(), rdef.getName()); } } }
/** * Test fetching and translating resource schema. * * @throws Exception */ @Test public void testFetchResourceSchema() throws CommunicationException, SchemaException { TestUtil.displayTestTile("testFetchResourceSchema"); // GIVEN // WHEN // The schema was fetched during test init. Now just check if it was OK. // THEN AssertJUnit.assertNotNull(resourceSchema); System.out.println(resourceSchema.debugDump()); Document xsdSchema = resourceSchema.serializeToXsd(); System.out.println( "-------------------------------------------------------------------------------------"); System.out.println(DOMUtil.printDom(xsdSchema)); System.out.println( "-------------------------------------------------------------------------------------"); ObjectClassComplexTypeDefinition accountDefinition = resourceSchema.findObjectClassDefinition( new QName(ResourceTypeUtil.getResourceNamespace(resourceType), "AccountObjectClass")); AssertJUnit.assertNotNull(accountDefinition); AssertJUnit.assertFalse( "No identifiers for account object class ", accountDefinition.getIdentifiers().isEmpty()); PrismPropertyDefinition uidDefinition = accountDefinition.findPropertyDefinition(ConnectorFactoryIcfImpl.ICFS_UID); AssertJUnit.assertNotNull(uidDefinition); for (Definition def : resourceSchema.getDefinitions()) { if (def instanceof ResourceAttributeContainerDefinition) { ResourceAttributeContainerDefinition rdef = (ResourceAttributeContainerDefinition) def; assertNotEmpty("No type name in object class", rdef.getTypeName()); assertNotEmpty( "No native object class for " + rdef.getTypeName(), rdef.getNativeObjectClass()); // This is maybe not that important, but just for a sake of // completeness assertNotEmpty("No name for " + rdef.getTypeName(), rdef.getName()); } } }
@Test public void testResourceSchemaSanity() throws Exception { TestUtil.displayTestTile("testResourceSchemaSanity"); QName objectClassQname = new QName(ResourceTypeUtil.getResourceNamespace(resourceType), "AccountObjectClass"); ObjectClassComplexTypeDefinition accountDefinition = resourceSchema.findObjectClassDefinition(objectClassQname); assertNotNull("No object class definition " + objectClassQname, accountDefinition); assertEquals( "Object class " + objectClassQname + " is not account", ShadowKindType.ACCOUNT, accountDefinition.getKind()); assertTrue( "Object class " + objectClassQname + " is not default account", accountDefinition.isDefaultInAKind()); assertFalse("Object class " + objectClassQname + " is empty", accountDefinition.isEmpty()); assertFalse("Object class " + objectClassQname + " is empty", accountDefinition.isIgnored()); Collection<? extends ResourceAttributeDefinition> identifiers = accountDefinition.getIdentifiers(); assertNotNull("Null identifiers for " + objectClassQname, identifiers); assertFalse("Empty identifiers for " + objectClassQname, identifiers.isEmpty()); // TODO ResourceAttributeDefinition attributeDefinition = accountDefinition.findAttributeDefinition(ConnectorFactoryIcfImpl.ICFS_UID); assertNotNull( "No definition for attribute " + ConnectorFactoryIcfImpl.ICFS_UID, attributeDefinition); assertTrue( "Attribute " + ConnectorFactoryIcfImpl.ICFS_UID + " in not an identifier", attributeDefinition.isIdentifier(accountDefinition)); assertTrue( "Attribute " + ConnectorFactoryIcfImpl.ICFS_UID + " in not in identifiers list", identifiers.contains(attributeDefinition)); }
@Test public void test020ResourceSchemaSanity() throws Exception { final String TEST_NAME = "test020ResourceSchemaSanity"; TestUtil.displayTestTile(TEST_NAME); QName objectClassQname = new QName( ResourceTypeUtil.getResourceNamespace(resourceType), ProvisioningTestUtil.OBJECT_CLASS_INETORGPERSON_NAME); ObjectClassComplexTypeDefinition accountDefinition = resourceSchema.findObjectClassDefinition(objectClassQname); assertNotNull("No object class definition " + objectClassQname, accountDefinition); // assertEquals("Object class " + objectClassQname + " is not account", ShadowKindType.ACCOUNT, // accountDefinition.getKind()); // assertTrue("Object class " + objectClassQname + " is not default account", // accountDefinition.isDefaultInAKind()); assertFalse("Object class " + objectClassQname + " is empty", accountDefinition.isEmpty()); assertFalse("Object class " + objectClassQname + " is empty", accountDefinition.isIgnored()); Collection<? extends ResourceAttributeDefinition> identifiers = accountDefinition.getIdentifiers(); assertNotNull("Null identifiers for " + objectClassQname, identifiers); assertFalse("Empty identifiers for " + objectClassQname, identifiers.isEmpty()); ResourceAttributeDefinition<String> idPrimaryDef = accountDefinition.findAttributeDefinition( new QName( ResourceTypeUtil.getResourceNamespace(resourceType), ProvisioningTestUtil.RESOURCE_OPENDJ_PRIMARY_IDENTIFIER_LOCAL_NAME)); assertNotNull( "No definition for attribute " + ProvisioningTestUtil.RESOURCE_OPENDJ_PRIMARY_IDENTIFIER_LOCAL_NAME, idPrimaryDef); assertTrue( "Attribute " + ProvisioningTestUtil.RESOURCE_OPENDJ_PRIMARY_IDENTIFIER_LOCAL_NAME + " in not an identifier", idPrimaryDef.isIdentifier(accountDefinition)); assertTrue( "Attribute " + ProvisioningTestUtil.RESOURCE_OPENDJ_PRIMARY_IDENTIFIER_LOCAL_NAME + " in not in identifiers list", identifiers.contains(idPrimaryDef)); assertEquals( "Attribute " + ProvisioningTestUtil.RESOURCE_OPENDJ_PRIMARY_IDENTIFIER_LOCAL_NAME + " has wrong native name", ProvisioningTestUtil.RESOURCE_OPENDJ_PRIMARY_IDENTIFIER_LOCAL_NAME, idPrimaryDef.getNativeAttributeName()); assertEquals( "Attribute " + ProvisioningTestUtil.RESOURCE_OPENDJ_PRIMARY_IDENTIFIER_LOCAL_NAME + " has wrong framework name", Uid.NAME, idPrimaryDef.getFrameworkAttributeName()); ResourceAttributeDefinition<String> idSecondaryDef = accountDefinition.findAttributeDefinition( new QName( ResourceTypeUtil.getResourceNamespace(resourceType), ProvisioningTestUtil.RESOURCE_OPENDJ_SECONDARY_IDENTIFIER_LOCAL_NAME)); assertNotNull( "No definition for attribute " + ConnectorFactoryIcfImpl.ICFS_NAME, idSecondaryDef); assertTrue( "Attribute " + ProvisioningTestUtil.RESOURCE_OPENDJ_SECONDARY_IDENTIFIER_LOCAL_NAME + " in not secondary identifier", idSecondaryDef.isSecondaryIdentifier(accountDefinition)); assertFalse( "Attribute " + ProvisioningTestUtil.RESOURCE_OPENDJ_SECONDARY_IDENTIFIER_LOCAL_NAME + " in in identifiers list and it should NOT be", identifiers.contains(idSecondaryDef)); assertTrue( "Attribute " + ProvisioningTestUtil.RESOURCE_OPENDJ_SECONDARY_IDENTIFIER_LOCAL_NAME + " in not in secomdary identifiers list", accountDefinition.getSecondaryIdentifiers().contains(idSecondaryDef)); assertEquals( "Attribute " + ProvisioningTestUtil.RESOURCE_OPENDJ_SECONDARY_IDENTIFIER_LOCAL_NAME + " has wrong native name", ProvisioningTestUtil.RESOURCE_OPENDJ_SECONDARY_IDENTIFIER_LOCAL_NAME, idSecondaryDef.getNativeAttributeName()); assertEquals( "Attribute " + ProvisioningTestUtil.RESOURCE_OPENDJ_SECONDARY_IDENTIFIER_LOCAL_NAME + " has wrong framework name", Name.NAME, idSecondaryDef.getFrameworkAttributeName()); assertEquals("Unexpected identifiers: " + identifiers, 1, identifiers.size()); assertEquals( "Unexpected secondary identifiers: " + accountDefinition.getSecondaryIdentifiers(), 1, accountDefinition.getSecondaryIdentifiers().size()); }