Search in sources :

Example 41 with Entry

use of org.opends.server.types.Entry in project midpoint by Evolveum.

the class TestOpenDj method test402AddAccountMorganWithAssociation.

@Test
public void test402AddAccountMorganWithAssociation() throws Exception {
    final String TEST_NAME = "test402AddAccountMorganWithAssociation";
    TestUtil.displayTestTile(TEST_NAME);
    Task task = createTask(TEST_NAME);
    OperationResult result = task.getResult();
    ShadowType object = parseObjectType(ACCOUNT_MORGAN_FILE, ShadowType.class);
    IntegrationTestTools.display("Adding object", object);
    // WHEN
    String addedObjectOid = provisioningService.addObject(object.asPrismObject(), null, null, task, result);
    // THEN
    assertEquals(ACCOUNT_MORGAN_OID, addedObjectOid);
    ShadowType shadowType = repositoryService.getObject(ShadowType.class, ACCOUNT_MORGAN_OID, null, result).asObjectable();
    PrismAsserts.assertEqualsPolyString("Wrong ICF name (repo)", ACCOUNT_MORGAN_DN, shadowType.getName());
    ShadowType provisioningShadowType = provisioningService.getObject(ShadowType.class, ACCOUNT_MORGAN_OID, null, taskManager.createTaskInstance(), result).asObjectable();
    PrismAsserts.assertEqualsPolyString("Wrong ICF name (provisioning)", ACCOUNT_MORGAN_DN, provisioningShadowType.getName());
    String uid = ShadowUtil.getSingleStringAttributeValue(shadowType, getPrimaryIdentifierQName());
    assertNotNull(uid);
    List<ShadowAssociationType> associations = provisioningShadowType.getAssociation();
    assertEquals("Unexpected number of associations", 1, associations.size());
    ShadowAssociationType association = associations.get(0);
    assertEquals("Wrong group OID in association", GROUP_SWASHBUCKLERS_OID, association.getShadowRef().getOid());
    Entry accountEntry = openDJController.searchAndAssertByEntryUuid(uid);
    display("LDAP account", accountEntry);
    assertNotNull("No LDAP account entry");
    String accountDn = accountEntry.getDN().toString();
    assertEquals("Wrong account DN", ACCOUNT_MORGAN_DN, accountDn);
    Entry groupEntry = openDJController.fetchEntry(GROUP_SWASHBUCKLERS_DN);
    display("LDAP group", groupEntry);
    assertNotNull("No LDAP group entry");
    openDJController.assertUniqueMember(groupEntry, accountDn);
    assertShadows(19);
}
Also used : Task(com.evolveum.midpoint.task.api.Task) Entry(org.opends.server.types.Entry) ShadowType(com.evolveum.midpoint.xml.ns._public.common.common_3.ShadowType) OperationResult(com.evolveum.midpoint.schema.result.OperationResult) ShadowAssociationType(com.evolveum.midpoint.xml.ns._public.common.common_3.ShadowAssociationType) Test(org.testng.annotations.Test)

Example 42 with Entry

use of org.opends.server.types.Entry in project midpoint by Evolveum.

the class TestSynchronization method test100SyncAddWill.

@Test
public void test100SyncAddWill() throws Exception {
    final String TEST_NAME = "test100SyncAddWill";
    TestUtil.displayTestTile(TEST_NAME);
    final OperationResult result = new OperationResult(TestSynchronization.class.getName() + "." + TEST_NAME);
    Task syncTask = taskManager.getTask(SYNC_TASK_OID, result);
    AssertJUnit.assertNotNull(syncTask);
    assertSyncToken(syncTask, 0, result);
    ((SynchornizationServiceMock) syncServiceMock).reset();
    // create add change in embeded LDAP
    LDIFImportConfig importConfig = new LDIFImportConfig(LDIF_WILL_FILE.getPath());
    LDIFReader ldifReader = new LDIFReader(importConfig);
    Entry entry = ldifReader.readEntry();
    display("Entry from LDIF", entry);
    AddOperation addOperation = openDJController.getInternalConnection().processAdd(entry);
    AssertJUnit.assertEquals("LDAP add operation failed", ResultCode.SUCCESS, addOperation.getResultCode());
    ResourceShadowDiscriminator coords = new ResourceShadowDiscriminator(resourceType.getOid(), AbstractOpenDjTest.RESOURCE_OPENDJ_ACCOUNT_OBJECTCLASS);
    // WHEN
    provisioningService.synchronize(coords, syncTask, result);
    // THEN
    SynchornizationServiceMock mock = (SynchornizationServiceMock) syncServiceMock;
    assertEquals("Unexpected number of synchronization service calls", 1, mock.getCallCount());
    ResourceObjectShadowChangeDescription lastChange = mock.getLastChange();
    //			ObjectDelta<? extends ShadowType> objectDelta = lastChange.getObjectDelta();
    //			assertNotNull("Null object delta in change notification", objectDelta);
    //			assertEquals("Wrong change type in delta in change notification", ChangeType.ADD, objectDelta.getChangeType());
    PrismObject<? extends ShadowType> currentShadow = lastChange.getCurrentShadow();
    assertNotNull("No current shadow in change notification", currentShadow);
    assertNotNull("No old shadow in change notification", lastChange.getOldShadow());
    assertEquals("Wrong shadow name", PrismTestUtil.createPolyStringType(ACCOUNT_WILL_NAME), currentShadow.asObjectable().getName());
    assertSyncToken(SYNC_TASK_OID, 1, result);
}
Also used : Task(com.evolveum.midpoint.task.api.Task) Entry(org.opends.server.types.Entry) ResourceObjectShadowChangeDescription(com.evolveum.midpoint.provisioning.api.ResourceObjectShadowChangeDescription) SynchornizationServiceMock(com.evolveum.midpoint.provisioning.impl.mock.SynchornizationServiceMock) LDIFImportConfig(org.opends.server.types.LDIFImportConfig) LDIFReader(org.opends.server.util.LDIFReader) OperationResult(com.evolveum.midpoint.schema.result.OperationResult) ResourceShadowDiscriminator(com.evolveum.midpoint.schema.ResourceShadowDiscriminator) AddOperation(org.opends.server.core.AddOperation) AbstractIntegrationTest(com.evolveum.midpoint.test.AbstractIntegrationTest) Test(org.testng.annotations.Test)

Example 43 with Entry

use of org.opends.server.types.Entry in project midpoint by Evolveum.

the class TestSynchronization method test500SyncAddProtected.

@Test
public void test500SyncAddProtected() throws Exception {
    final String TEST_NAME = "test500SyncAddProtected";
    TestUtil.displayTestTile(TEST_NAME);
    final OperationResult result = new OperationResult(TestSynchronization.class.getName() + "." + TEST_NAME);
    Task syncTask = taskManager.getTask(SYNC_TASK_OID, result);
    AssertJUnit.assertNotNull(syncTask);
    assertSyncToken(syncTask, 1, result);
    ((SynchornizationServiceMock) syncServiceMock).reset();
    // create add change in embedded LDAP
    LDIFImportConfig importConfig = new LDIFImportConfig(LDIF_CALYPSO_FILE.getPath());
    LDIFReader ldifReader = new LDIFReader(importConfig);
    Entry entry = ldifReader.readEntry();
    ldifReader.close();
    display("Entry from LDIF", entry);
    AddOperation addOperation = openDJController.getInternalConnection().processAdd(entry);
    AssertJUnit.assertEquals("LDAP add operation failed", ResultCode.SUCCESS, addOperation.getResultCode());
    ResourceShadowDiscriminator coords = new ResourceShadowDiscriminator(resourceType.getOid(), AbstractOpenDjTest.RESOURCE_OPENDJ_ACCOUNT_OBJECTCLASS);
    // WHEN
    provisioningService.synchronize(coords, syncTask, result);
    // THEN
    SynchornizationServiceMock mock = (SynchornizationServiceMock) syncServiceMock;
    assertEquals("Unexpected number of synchronization service calls", 0, mock.getCallCount());
    //		ResourceObjectShadowChangeDescription lastChange = mock.getLastChange();
    //		PrismObject<? extends ShadowType> currentShadow = lastChange.getCurrentShadow();
    //		assertNotNull("No current shadow in change notification", currentShadow);
    //		assertNotNull("No old shadow in change notification", lastChange.getOldShadow());
    //		
    //		assertEquals("Wrong shadow name", PrismTestUtil.createPolyStringType(ACCOUNT_CALYPSO_NAME), currentShadow.asObjectable().getName());
    //		
    //		assertNotNull("Calypso is not protected", currentShadow.asObjectable().isProtectedObject());
    //		assertTrue("Calypso is not protected", currentShadow.asObjectable().isProtectedObject());
    assertSyncToken(SYNC_TASK_OID, 2, result);
}
Also used : Task(com.evolveum.midpoint.task.api.Task) Entry(org.opends.server.types.Entry) SynchornizationServiceMock(com.evolveum.midpoint.provisioning.impl.mock.SynchornizationServiceMock) LDIFImportConfig(org.opends.server.types.LDIFImportConfig) LDIFReader(org.opends.server.util.LDIFReader) OperationResult(com.evolveum.midpoint.schema.result.OperationResult) ResourceShadowDiscriminator(com.evolveum.midpoint.schema.ResourceShadowDiscriminator) AddOperation(org.opends.server.core.AddOperation) AbstractIntegrationTest(com.evolveum.midpoint.test.AbstractIntegrationTest) Test(org.testng.annotations.Test)

Example 44 with Entry

use of org.opends.server.types.Entry in project midpoint by Evolveum.

the class TestOpenDj method test150ChangePassword.

@Test
public void test150ChangePassword() throws Exception {
    final String TEST_NAME = "test150ChangePassword";
    TestUtil.displayTestTile(TEST_NAME);
    Task task = createTask(TEST_NAME);
    OperationResult result = task.getResult();
    ShadowType object = parseObjectType(ACCOUNT_MODIFY_PASSWORD_FILE, ShadowType.class);
    String addedObjectOid = provisioningService.addObject(object.asPrismObject(), null, null, taskManager.createTaskInstance(), result);
    assertEquals(ACCOUNT_MODIFY_PASSWORD_OID, addedObjectOid);
    ShadowType accountType = provisioningService.getObject(ShadowType.class, ACCOUNT_MODIFY_PASSWORD_OID, null, taskManager.createTaskInstance(), result).asObjectable();
    display("Object before password change", accountType);
    String uid = null;
    uid = ShadowUtil.getSingleStringAttributeValue(accountType, getPrimaryIdentifierQName());
    assertNotNull(uid);
    Entry entryBefore = openDJController.searchAndAssertByEntryUuid(uid);
    display("LDAP account before", entryBefore);
    String passwordBefore = OpenDJController.getAttributeValue(entryBefore, "userPassword");
    assertNull("Unexpected password before change", passwordBefore);
    ObjectModificationType objectChange = PrismTestUtil.parseAtomicValue(new File(TEST_DIR, "account-change-password.xml"), ObjectModificationType.COMPLEX_TYPE);
    ObjectDelta<ShadowType> delta = DeltaConvertor.createObjectDelta(objectChange, accountType.asPrismObject().getDefinition());
    display("Object change", delta);
    // WHEN
    TestUtil.displayWhen(TEST_NAME);
    provisioningService.modifyObject(ShadowType.class, delta.getOid(), delta.getModifications(), null, null, task, result);
    // THEN
    TestUtil.displayThen(TEST_NAME);
    // Check if object was modified in LDAP
    Entry entryAfter = openDJController.searchAndAssertByEntryUuid(uid);
    display("LDAP account after", entryAfter);
    String passwordAfter = OpenDJController.getAttributeValue(entryAfter, "userPassword");
    assertNotNull("The password was not changed", passwordAfter);
    System.out.println("Changed password: " + passwordAfter);
    openDJController.assertPassword(entryAfter.getDN().toString(), "mehAbigH4X0R");
    assertShadows(4);
}
Also used : ObjectModificationType(com.evolveum.midpoint.xml.ns._public.common.api_types_3.ObjectModificationType) Task(com.evolveum.midpoint.task.api.Task) Entry(org.opends.server.types.Entry) ShadowType(com.evolveum.midpoint.xml.ns._public.common.common_3.ShadowType) OperationResult(com.evolveum.midpoint.schema.result.OperationResult) File(java.io.File) Test(org.testng.annotations.Test)

Example 45 with Entry

use of org.opends.server.types.Entry in project midpoint by Evolveum.

the class TestOpenDj method test175AddDisabledAccount.

@Test
public void test175AddDisabledAccount() throws Exception {
    final String TEST_NAME = "test175AddDisabledAccount";
    TestUtil.displayTestTile(TEST_NAME);
    Task task = createTask(TEST_NAME);
    OperationResult result = task.getResult();
    ShadowType object = parseObjectType(ACCOUNT_NEW_DISABLED_FILE, ShadowType.class);
    IntegrationTestTools.display("Adding object", object);
    // WHEN
    String addedObjectOid = provisioningService.addObject(object.asPrismObject(), null, null, taskManager.createTaskInstance(), result);
    // THEN
    assertEquals(ACCOUNT_NEW_DISABLED_OID, addedObjectOid);
    ShadowType accountType = repositoryService.getObject(ShadowType.class, ACCOUNT_NEW_DISABLED_OID, null, result).asObjectable();
    PrismAsserts.assertEqualsPolyString("Wrong ICF name (repo)", "uid=rapp,ou=People,dc=example,dc=com", accountType.getName());
    ShadowType provisioningAccountType = provisioningService.getObject(ShadowType.class, ACCOUNT_NEW_DISABLED_OID, null, taskManager.createTaskInstance(), result).asObjectable();
    PrismAsserts.assertEqualsPolyString("Wrong ICF name (provisioning)", "uid=rapp,ou=People,dc=example,dc=com", provisioningAccountType.getName());
    String uid = ShadowUtil.getSingleStringAttributeValue(accountType, getPrimaryIdentifierQName());
    assertNotNull(uid);
    // Check if object was modified in LDAP
    Entry response = openDJController.searchAndAssertByEntryUuid(uid);
    display("LDAP account", response);
    String disabled = openDJController.getAttributeValue(response, "ds-pwp-account-disabled");
    assertNotNull("no ds-pwp-account-disabled attribute in account " + uid, disabled);
    System.out.println("ds-pwp-account-disabled after change: " + disabled);
    assertEquals("ds-pwp-account-disabled not set to \"TRUE\"", "TRUE", disabled);
    ActivationType repoActivation = accountType.getActivation();
    assertNotNull("No activation in repo", repoActivation);
    XMLGregorianCalendar repoDisableTimestamp = repoActivation.getDisableTimestamp();
    assertNotNull("No activation disableTimestamp in repo", repoDisableTimestamp);
    assertEquals("Wrong activation disableTimestamp in repo", XmlTypeConverter.createXMLGregorianCalendar(1999, 8, 7, 6, 5, 4), repoDisableTimestamp);
}
Also used : XMLGregorianCalendar(javax.xml.datatype.XMLGregorianCalendar) Task(com.evolveum.midpoint.task.api.Task) Entry(org.opends.server.types.Entry) ShadowType(com.evolveum.midpoint.xml.ns._public.common.common_3.ShadowType) ActivationType(com.evolveum.midpoint.xml.ns._public.common.common_3.ActivationType) OperationResult(com.evolveum.midpoint.schema.result.OperationResult) Test(org.testng.annotations.Test)

Aggregations

Entry (org.opends.server.types.Entry)87 OperationResult (com.evolveum.midpoint.schema.result.OperationResult)45 Test (org.testng.annotations.Test)44 Task (com.evolveum.midpoint.task.api.Task)43 ShadowType (com.evolveum.midpoint.xml.ns._public.common.common_3.ShadowType)40 PolyString (com.evolveum.midpoint.prism.polystring.PolyString)29 UserType (com.evolveum.midpoint.xml.ns._public.common.common_3.UserType)14 QName (javax.xml.namespace.QName)11 SearchResultEntry (org.opends.server.types.SearchResultEntry)11 LDIFImportConfig (org.opends.server.types.LDIFImportConfig)10 LDIFReader (org.opends.server.util.LDIFReader)10 AbstractModelIntegrationTest (com.evolveum.midpoint.model.test.AbstractModelIntegrationTest)9 OrgType (com.evolveum.midpoint.xml.ns._public.common.common_3.OrgType)8 PrismObject (com.evolveum.midpoint.prism.PrismObject)6 JarEntry (java.util.jar.JarEntry)6 ChangeRecordEntry (org.opends.server.util.ChangeRecordEntry)6 ModifyChangeRecordEntry (org.opends.server.util.ModifyChangeRecordEntry)6 ModifyDNChangeRecordEntry (org.opends.server.util.ModifyDNChangeRecordEntry)6 ItemPath (com.evolveum.midpoint.prism.path.ItemPath)5 PrismReferenceValue (com.evolveum.midpoint.prism.PrismReferenceValue)4