/** * Simple call to connector test() method. * * @throws Exception */ @Test public void test310TestConnectionNegative() throws Exception { final String TEST_NAME = "test310TestConnectionNegative"; TestUtil.displayTestTile(this, TEST_NAME); // GIVEN OperationResult result = new OperationResult(TEST_NAME); ConnectorInstance badConnector = factory.createConnectorInstance( connectorType, ResourceTypeUtil.getResourceNamespace(badResourceType), "test connector"); badConnector.configure( badResourceType.getConnectorConfiguration().asPrismContainerValue(), result); // WHEN badConnector.test(result); // THEN result.computeStatus("test failed"); display("Test result (FAILURE EXPECTED)", result); AssertJUnit.assertNotNull(result); OperationResult connectorConnectionResult = result.getSubresults().get(1); AssertJUnit.assertNotNull(connectorConnectionResult); System.out.println( "Test \"connector connection\" result: " + connectorConnectionResult + " (FAILURE EXPECTED)"); AssertJUnit.assertTrue( "Unexpected success of bad connector test", !connectorConnectionResult.isSuccess()); AssertJUnit.assertTrue(!result.isSuccess()); }
@BeforeMethod public void initUcf() throws Exception { TestUtil.displayTestTile("initUcf"); File file = new File(FILENAME_RESOURCE_OPENDJ); FileInputStream fis = new FileInputStream(file); // Resource PrismObject<ResourceType> resource = PrismTestUtil.parseObject(new File(FILENAME_RESOURCE_OPENDJ)); resourceType = resource.asObjectable(); // Resource: Second copy for negative test cases PrismObject<ResourceType> badResource = PrismTestUtil.parseObject(new File(FILENAME_RESOURCE_OPENDJ_BAD)); badResourceType = badResource.asObjectable(); // Connector PrismObject<ConnectorType> connector = PrismTestUtil.parseObject(new File(FILENAME_CONNECTOR_LDAP)); connectorType = connector.asObjectable(); factory = connectorFactoryIcfImpl; cc = factory.createConnectorInstance( connectorType, ResourceTypeUtil.getResourceNamespace(resourceType), "test connector"); AssertJUnit.assertNotNull("Cannot create connector instance", cc); connectorSchema = cc.generateConnectorSchema(); AssertJUnit.assertNotNull("Cannot generate connector schema", cc); display("Connector schema", connectorSchema); OperationResult result = new OperationResult("initUcf"); cc.configure(resourceType.getConnectorConfiguration().asPrismContainerValue(), result); cc.initialize(null, null, false, result); // TODO: assert something resourceSchema = cc.fetchResourceSchema(null, result); display("Resource schema", resourceSchema); AssertJUnit.assertNotNull(resourceSchema); }
@Test public void test600CreateAccountWithPassword() throws Exception { final String TEST_NAME = "test600CreateAccountWithPassword"; TestUtil.displayTestTile(this, TEST_NAME); // GIVEN ResourceAttributeContainer resourceObject = createResourceObject( "uid=lechuck,ou=people,dc=example,dc=com", "Ghost Pirate LeChuck", "LeChuck"); Set<Operation> additionalOperations = new HashSet<Operation>(); ProtectedStringType ps = protector.encryptString("t4k30v3rTh3W0rld"); // PasswordChangeOperation passOp = new PasswordChangeOperation(ps); // additionalOperations.add(passOp); OperationResult addResult = new OperationResult(this.getClass().getName() + "." + TEST_NAME); PrismObject<ShadowType> shadow = wrapInShadow(ShadowType.class, resourceObject); CredentialsType credentials = new CredentialsType(); PasswordType pass = new PasswordType(); pass.setValue(ps); credentials.setPassword(pass); shadow.asObjectable().setCredentials(credentials); // WHEN cc.addObject(shadow, additionalOperations, addResult); // THEN String entryUuid = (String) resourceObject.getIdentifier().getValue().getValue(); SearchResultEntry entry = openDJController.searchAndAssertByEntryUuid(entryUuid); display("Entry before change", entry); String passwordAfter = OpenDJController.getAttributeValue(entry, "userPassword"); assertNotNull(passwordAfter); System.out.println("Changed password: " + passwordAfter); // TODO }
@Test public void test610ChangePassword() throws Exception { final String TEST_NAME = "test610ChangePassword"; TestUtil.displayTestTile(this, TEST_NAME); // GIVEN ResourceAttributeContainer resourceObject = createResourceObject("uid=drake,ou=People,dc=example,dc=com", "Sir Francis Drake", "Drake"); PrismObject<ShadowType> shadow = wrapInShadow(ShadowType.class, resourceObject); OperationResult addResult = new OperationResult(this.getClass().getName() + "." + TEST_NAME); // Add a testing object cc.addObject(shadow, null, addResult); String entryUuid = (String) resourceObject.getIdentifier().getValue().getValue(); SearchResultEntry entry = openDJController.searchAndAssertByEntryUuid(entryUuid); display("Entry before change", entry); String passwordBefore = OpenDJController.getAttributeValue(entry, "userPassword"); // We have set no password during create, therefore the password should // be empty assertNull(passwordBefore); ObjectClassComplexTypeDefinition accountDefinition = resourceObject.getDefinition().getComplexTypeDefinition(); Collection<ResourceAttribute<?>> identifiers = resourceObject.getIdentifiers(); // Determine object class from the schema OperationResult result = new OperationResult(this.getClass().getName() + ".testFetchObject"); // WHEN Set<Operation> changes = new HashSet<Operation>(); ProtectedStringType passPs = protector.encryptString("salalala"); ItemDeltaType propMod = new ItemDeltaType(); // create modification path Document doc = DOMUtil.getDocument(); ItemPathType path = new ItemPathType("credentials/password/value"); // PropertyPath propPath = new PropertyPath(new // PropertyPath(ResourceObjectShadowType.F_CREDENTIALS), CredentialsType.F_PASSWORD); propMod.setPath(path); // set the replace value MapXNode passPsXnode = prismContext.getBeanConverter().marshalProtectedDataType(passPs); RawType value = new RawType(passPsXnode, prismContext); propMod.getValue().add(value); // set the modificaion type propMod.setModificationType(ModificationTypeType.REPLACE); PropertyDelta passDelta = (PropertyDelta) DeltaConvertor.createItemDelta(propMod, shadow.getDefinition()); PropertyModificationOperation passwordModification = new PropertyModificationOperation(passDelta); changes.add(passwordModification); // PasswordChangeOperation passwordChange = new PasswordChangeOperation(passPs); // changes.add(passwordChange); cc.modifyObject(accountDefinition, identifiers, changes, result); // THEN entry = openDJController.searchAndAssertByEntryUuid(entryUuid); display("Entry after change", entry); String passwordAfter = OpenDJController.getAttributeValue(entry, "userPassword"); assertNotNull(passwordAfter); System.out.println("Account password: " + passwordAfter); }