public static void assertNoSchema(String message, ResourceType resourceType) { Element resourceXsdSchema = ResourceTypeUtil.getResourceXsdSchema(resourceType); AssertJUnit.assertNull(message, resourceXsdSchema); }
public ResourceAsserter<RA> assertHasSchema() { Element schemaElement = ResourceTypeUtil.getResourceXsdSchema(getObject()); assertNotNull("No schema in "+desc(), schemaElement); return this; }
private boolean isComplete(PrismObject<ResourceType> resource) { ResourceType resourceType = resource.asObjectable(); Element xsdSchema = ResourceTypeUtil.getResourceXsdSchema(resource); if (xsdSchema == null) { return false; } CapabilitiesType capabilitiesType = resourceType.getCapabilities(); if (capabilitiesType == null) { return false; } CachingMetadataType capCachingMetadata = capabilitiesType.getCachingMetadata(); if (capCachingMetadata == null) { return false; } return true; }
public static ResourceSchema getResourceSchema(PrismObject<ResourceType> resource, PrismContext prismContext) throws SchemaException { Element resourceXsdSchema = ResourceTypeUtil.getResourceXsdSchema(resource); if (resourceXsdSchema == null) { return null; } Object userDataEntry = resource.getUserData(USER_DATA_KEY_PARSED_RESOURCE_SCHEMA); if (userDataEntry != null) { if (userDataEntry instanceof ResourceSchema) { return (ResourceSchema)userDataEntry; } else { throw new IllegalStateException("Expected ResourceSchema under user data key "+ USER_DATA_KEY_PARSED_RESOURCE_SCHEMA+ "in "+resource+", but got "+userDataEntry.getClass()); } } else { InternalMonitor.recordCount(InternalCounters.RESOURCE_SCHEMA_PARSE_COUNT); ResourceSchemaImpl parsedSchema = ResourceSchemaImpl.parse(resourceXsdSchema, "resource schema of "+resource, prismContext); if (parsedSchema == null) { throw new IllegalStateException("Parsed schema is null: most likely an internall error"); } resource.setUserData(USER_DATA_KEY_PARSED_RESOURCE_SCHEMA, parsedSchema); parsedSchema.setNamespace(ResourceTypeUtil.getResourceNamespace(resource)); return parsedSchema; } }
protected CachingMetadataType getSchemaCachingMetadata(PrismObject<ResourceType> resource) { ResourceType resourceType = resource.asObjectable(); XmlSchemaType xmlSchemaType = resourceType.getSchema(); assertNotNull("No schema", xmlSchemaType); Element resourceXsdSchemaElementAfter = ResourceTypeUtil.getResourceXsdSchema(resourceType); assertNotNull("No schema XSD element", resourceXsdSchemaElementAfter); return xmlSchemaType.getCachingMetadata(); }
System.out.println(unmarshalledResource.debugDump()); Element unXsd = ResourceTypeUtil.getResourceXsdSchema(unmarshalledResource);
Element xsdSchemaElement = ResourceTypeUtil.getResourceXsdSchema(completedResource); if (xsdSchemaElement == null) { LOGGER.trace("Schema: null"); } else { LOGGER.trace("Schema:\n{}", DOMUtil.serializeDOMToString(ResourceTypeUtil.getResourceXsdSchema(completedResource)));
display("Initialized Derby resource (respository)", resourceDerby); assertNotNull("Resource schema was not generated", resourceDerby.getSchema()); Element resourceDerbyXsdSchemaElement = ResourceTypeUtil.getResourceXsdSchema(resourceDerby); assertNotNull("Resource schema was not generated", resourceDerbyXsdSchemaElement);
Element xsdSchemaElement = ResourceTypeUtil.getResourceXsdSchema(resourceType); assertNull("Found schema in "+resource, xsdSchemaElement);
private void singleModify(CarefulAnt<ResourceType> ant, int iteration, Task task, OperationResult result) throws SchemaException, ObjectAlreadyExistsException, ObjectNotFoundException, ExpressionEvaluationException, CommunicationException, ConfigurationException, PolicyViolationException, SecurityViolationException { // GIVEN ItemDelta<?,?> itemDelta = ant.createDelta(iteration); ObjectDelta<ResourceType> objectDelta = prismContext.deltaFactory().object() .createModifyDelta(RESOURCE_DUMMY_OID, itemDelta, ResourceType.class); Collection<ObjectDelta<? extends ObjectType>> deltas = MiscSchemaUtil.createCollection(objectDelta); IntegrationTestTools.assertNoRepoCache(); ModelExecuteOptions options = ModelExecuteOptions.createRaw(); // WHEN modelService.executeChanges(deltas, options , task, result); // THEN IntegrationTestTools.assertNoRepoCache(); Collection<SelectorOptions<GetOperationOptions>> getOptions = SelectorOptions.createCollection(GetOperationOptions.createRaw()); PrismObject<ResourceType> resourceAfter = modelService.getObject(ResourceType.class, RESOURCE_DUMMY_OID, getOptions, task, result); SqlRepoTestUtil.assertVersionProgress(lastVersion, resourceAfter.getVersion()); lastVersion = resourceAfter.getVersion(); display("Version", lastVersion); Element xsdSchema = ResourceTypeUtil.getResourceXsdSchema(resourceAfter); if (xsdSchema != null) { String targetNamespace = xsdSchema.getAttribute("targetNamespace"); assertNotNull("No targetNamespace in schema after application of "+objectDelta, targetNamespace); } IntegrationTestTools.assertNoRepoCache(); ant.assertModification(resourceAfter, iteration); }
@Test public void test003Connection() throws Exception { final String TEST_NAME = "test003Connection"; displayTestTitle(TEST_NAME); Task task = createTask(TEST_NAME); OperationResult result = task.getResult(); ResourceType resourceTypeBefore = repositoryService.getObject(ResourceType.class, RESOURCE_OPENDJ_OID, null, result).asObjectable(); display("Resource before testResource (repository)", resourceTypeBefore); assertNotNull("No connector ref",resourceTypeBefore.getConnectorRef()); assertNotNull("No connector ref OID",resourceTypeBefore.getConnectorRef().getOid()); connector = repositoryService.getObject(ConnectorType.class, resourceTypeBefore.getConnectorRef().getOid(), null, result); ConnectorType connectorType = connector.asObjectable(); assertNotNull(connectorType); XmlSchemaType xmlSchemaTypeBefore = resourceTypeBefore.getSchema(); AssertJUnit.assertNull("Found schema before test connection. Bad test setup?", xmlSchemaTypeBefore); Element resourceXsdSchemaElementBefore = ResourceTypeUtil.getResourceXsdSchema(resourceTypeBefore); AssertJUnit.assertNull("Found schema element before test connection. Bad test setup?", resourceXsdSchemaElementBefore); // WHEN OperationResult operationResult = provisioningService.testResource(RESOURCE_OPENDJ_OID, task); display("Test connection result (expected failure)",operationResult); TestUtil.assertFailure(operationResult); PrismObject<ResourceType> resourceRepoAfter = repositoryService.getObject(ResourceType.class,RESOURCE_OPENDJ_OID, null, result); display("Resource after testResource (repository)", resourceRepoAfter); ResourceType resourceTypeRepoAfter = resourceRepoAfter.asObjectable(); display("Resource after testResource (repository, XML)", PrismTestUtil.serializeObjectToString(resourceTypeRepoAfter.asPrismObject(), PrismContext.LANG_XML)); XmlSchemaType xmlSchemaTypeAfter = resourceTypeRepoAfter.getSchema(); assertNull("The schema was generated after test connection but it should not be",xmlSchemaTypeAfter); Element resourceXsdSchemaElementAfter = ResourceTypeUtil.getResourceXsdSchema(resourceTypeRepoAfter); assertNull("Schema after test connection (and should not be)", resourceXsdSchemaElementAfter); }
protected void assertHasSchema(PrismObject<ResourceType> resource, String desc) throws SchemaException { ResourceType resourceType = resource.asObjectable(); display("Resource "+desc, resourceType); XmlSchemaType xmlSchemaTypeAfter = resourceType.getSchema(); assertNotNull("No schema in "+desc, xmlSchemaTypeAfter); Element resourceXsdSchemaElementAfter = ResourceTypeUtil.getResourceXsdSchema(resourceType); assertNotNull("No schema XSD element in "+desc, resourceXsdSchemaElementAfter); String resourceXml = prismContext.serializeObjectToString(resource, PrismContext.LANG_XML); // display("Resource XML", resourceXml); CachingMetadataType cachingMetadata = xmlSchemaTypeAfter.getCachingMetadata(); assertNotNull("No caching metadata in "+desc, cachingMetadata); assertNotNull("No retrievalTimestamp in "+desc, cachingMetadata.getRetrievalTimestamp()); assertNotNull("No serialNumber in "+desc, cachingMetadata.getSerialNumber()); Element xsdElement = ObjectTypeUtil.findXsdElement(xmlSchemaTypeAfter); ResourceSchema parsedSchema = ResourceSchemaImpl.parse(xsdElement, resource.toString(), prismContext); assertNotNull("No schema after parsing in "+desc, parsedSchema); }
null, result).asObjectable(); Element resourceXsdSchemaElementBefore = ResourceTypeUtil.getResourceXsdSchema(resourceBefore); assertResourceSchemaBeforeTest(resourceXsdSchemaElementBefore); Element resourceXsdSchemaElementAfter = ResourceTypeUtil.getResourceXsdSchema(resourceTypeRepoAfter); assertNotNull("No schema after test connection", resourceXsdSchemaElementAfter);
.asObjectable(); XmlSchemaType xmlSchemaTypeBefore = resourceBefore.getSchema(); Element resourceXsdSchemaElementBefore = ResourceTypeUtil.getResourceXsdSchema(resourceBefore); AssertJUnit.assertNotNull("No schema before test connection. Bad test setup?", resourceXsdSchemaElementBefore);
private void assertResource(PrismObject<ResourceType> resource, boolean expectSchema) { display("Resource", resource); display("Resource def", resource.getDefinition()); PrismContainer<ConnectorConfigurationType> configurationContainer = resource.findContainer(ResourceType.F_CONNECTOR_CONFIGURATION); assertNotNull("No Resource connector configuration def", configurationContainer); PrismContainerDefinition<ConnectorConfigurationType> configurationContainerDefinition = configurationContainer.getDefinition(); display("Resource connector configuration def", configurationContainerDefinition); display("Resource connector configuration def complex type def", configurationContainerDefinition.getComplexTypeDefinition()); assertNotNull("Empty Resource connector configuration def", configurationContainer.isEmpty()); assertEquals("Wrong compile-time class in Resource connector configuration in "+resource, ConnectorConfigurationType.class, configurationContainer.getCompileTimeClass()); assertEquals("configurationContainer maxOccurs", 1, configurationContainerDefinition.getMaxOccurs()); resource.checkConsistence(true, true); Element schema = ResourceTypeUtil.getResourceXsdSchema(resource); if (expectSchema) { assertNotNull("no schema in "+resource, schema); } else { assertNull("Unexpected schema in "+resource+": "+schema, schema); } }
assertNull("Schema sneaked in", ResourceTypeUtil.getResourceXsdSchema(resource));
assertNull("Schema sneaked in", ResourceTypeUtil.getResourceXsdSchema(resource));
private void assertUpgrade(PrismObject<ResourceType> dummyResourceModelBefore) throws ObjectNotFoundException, SchemaException, SecurityViolationException, ObjectAlreadyExistsException, ExpressionEvaluationException, CommunicationException, ConfigurationException, PolicyViolationException { Task task = taskManager.createTaskInstance(TestConnectorDummyFake.class.getName() + ".assertUpgrade"); OperationResult result = task.getResult(); // Check if the changes went well in the repo PrismObject<ResourceType> repoResource = repositoryService.getObject(ResourceType.class, RESOURCE_DUMMY_FAKE_OID, null, result); display("Upgraded fake resource (repo)", repoResource); assertNotNull("Null fake resource after getObject (repo)", repoResource); assertEquals("Oooops. The OID of fake resource mysteriously changed. Call the police! (repo)", RESOURCE_DUMMY_FAKE_OID, repoResource.getOid()); assertEquals("Wrong connectorRef in fake resource (repo)", connectorDummyOid, repoResource.asObjectable().getConnectorRef().getOid()); // Check if resource view of the model has changed as well resourceDummyFake = modelService.getObject(ResourceType.class, RESOURCE_DUMMY_FAKE_OID, null, task, result); display("Upgraded fake resource (model)", resourceDummyFake); Element resourceDummyFakeSchemaElement = ResourceTypeUtil.getResourceXsdSchema(resourceDummyFake); display("Upgraded fake resource schema (model)", DOMUtil.serializeDOMToString(resourceDummyFakeSchemaElement)); assertNotNull("Null fake resource after getObject (model)", resourceDummyFake); assertEquals("Oooops. The OID of fake resource mysteriously changed. Call the police! (model)", RESOURCE_DUMMY_FAKE_OID, resourceDummyFake.getOid()); assertEquals("Wrong connectorRef in fake resource (model)", connectorDummyOid, resourceDummyFake.asObjectable().getConnectorRef().getOid()); // Check if the other resource is still untouched PrismObject<ResourceType> dummyResourceModelAfter = modelService.getObject(ResourceType.class, RESOURCE_DUMMY_OID, null, task, result); dummyResourceModelBefore.asObjectable().setFetchResult(null); dummyResourceModelAfter.asObjectable().setFetchResult(null); ObjectDelta<ResourceType> dummyResourceDiff = DiffUtil.diff(dummyResourceModelBefore, dummyResourceModelAfter); display("Dummy resource diff", dummyResourceDiff); assertTrue("Ha! Someone touched the other resource! Off with his head! diff:"+dummyResourceDiff, dummyResourceDiff.isEmpty()); testResources(3,3); }
assertNotNull(connector); XmlSchemaType xmlSchemaTypeBefore = resourceBefore.getSchema(); Element resourceXsdSchemaElementBefore = ResourceTypeUtil.getResourceXsdSchema(resourceBefore); AssertJUnit.assertNull("Found schema before test connection. Bad test setup?", resourceXsdSchemaElementBefore);
assertNotNull(connector); XmlSchemaType xmlSchemaTypeBefore = resourceBefore.getSchema(); Element resourceXsdSchemaElementBefore = ResourceTypeUtil.getResourceXsdSchema(resourceBefore); AssertJUnit.assertNull("Found schema before test connection. Bad test setup?", resourceXsdSchemaElementBefore);