Skip to content

Commit

Permalink
model-intest: few more tests new repo ready, TestUuid cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
virgo47 committed Aug 13, 2021
1 parent 6e4b63c commit ed877cd
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 37 deletions.
Original file line number Diff line number Diff line change
@@ -1,22 +1,20 @@
/*
* Copyright (c) 2010-2020 Evolveum and contributors
* Copyright (C) 2010-2021 Evolveum and contributors
*
* This work is dual-licensed under the Apache License 2.0
* and European Union Public License. See LICENSE file for details.
*/
package com.evolveum.midpoint.model.intest.sync;

import static com.evolveum.midpoint.schema.constants.SchemaConstants.ORG_DEFAULT;
import static com.evolveum.midpoint.schema.constants.SchemaConstants.ORG_RELATED;

import static org.assertj.core.api.Assertions.assertThat;
import static org.testng.AssertJUnit.*;

import static com.evolveum.midpoint.schema.constants.SchemaConstants.ORG_DEFAULT;
import static com.evolveum.midpoint.schema.constants.SchemaConstants.ORG_RELATED;

import java.io.File;
import java.util.List;

import com.evolveum.midpoint.model.impl.sync.tasks.recon.ReconciliationActivityHandler;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.annotation.DirtiesContext.ClassMode;
Expand All @@ -30,6 +28,7 @@
import com.evolveum.midpoint.audit.api.AuditEventStage;
import com.evolveum.midpoint.audit.api.AuditEventType;
import com.evolveum.midpoint.model.impl.sync.tasks.recon.DebugReconciliationResultListener;
import com.evolveum.midpoint.model.impl.sync.tasks.recon.ReconciliationActivityHandler;
import com.evolveum.midpoint.model.intest.AbstractInitializedModelIntegrationTest;
import com.evolveum.midpoint.prism.PrismObject;
import com.evolveum.midpoint.schema.internals.InternalCounters;
Expand Down Expand Up @@ -101,29 +100,25 @@ public void initSystem(Task initTask, OperationResult initResult) throws Excepti

@Test
public void test200ReconcileDummyUuid() throws Exception {
// GIVEN
given();
Task task = getTestTask();
OperationResult result = task.getResult();
assumeAssignmentPolicy(AssignmentPolicyEnforcementType.NONE);

// TODO
// TODO ... do what?

getDummyResource().purgeScriptHistory();
dummyAuditService.clear();
rememberCounter(InternalCounters.SHADOW_FETCH_OPERATION_COUNT);
reconciliationTaskResultListener.clear();

// WHEN
when();
importObjectFromFile(TASK_RECONCILE_DUMMY_UUID_FILE);

// THEN
then();

waitForTaskFinish(TASK_RECONCILE_DUMMY_UUID_OID, false);

// THEN
then();
reconciliationTaskResultListener.assertResult(RESOURCE_DUMMY_UUID_OID, 0, 0, 0, 0);

List<PrismObject<UserType>> users = modelService.searchObjects(UserType.class, null, null, task, result);
Expand All @@ -149,7 +144,7 @@ public void test200ReconcileDummyUuid() throws Exception {

@Test
public void test210ReconcileDummyUuidAddAugustus() throws Exception {
// GIVEN
given();
Task task = getTestTask();
OperationResult result = task.getResult();
assumeAssignmentPolicy(AssignmentPolicyEnforcementType.NONE);
Expand All @@ -166,17 +161,13 @@ public void test210ReconcileDummyUuidAddAugustus() throws Exception {

Task taskBefore = taskManager.getTaskPlain(TASK_RECONCILE_DUMMY_UUID_OID, result);

// WHEN
when();
restartTask(TASK_RECONCILE_DUMMY_UUID_OID);

// THEN
then();

waitForTaskNextRunAssertSuccess(taskBefore, true);

// THEN
then();
reconciliationTaskResultListener.assertResult(RESOURCE_DUMMY_UUID_OID, 0, 1, 0, 0);

List<PrismObject<UserType>> users = modelService.searchObjects(UserType.class, null, null, task, result);
Expand Down Expand Up @@ -207,16 +198,14 @@ public void test210ReconcileDummyUuidAddAugustus() throws Exception {
display("Augustus after recon", user);
augustusShadowOid = getSingleLinkOid(user);
repositoryService.getObject(ShadowType.class, augustusShadowOid, null, result);

}

/**
* Augustus is deleted and re-added with the same username. New shadow needs to be created.
*/
@Test
public void test220ReconcileDummyUuidDeleteAddAugustus() throws Exception {
// GIVEN
TestUuid.class.getName();
given();
Task task = getTestTask();
OperationResult result = task.getResult();
assumeAssignmentPolicy(AssignmentPolicyEnforcementType.NONE);
Expand Down Expand Up @@ -248,17 +237,12 @@ public void test220ReconcileDummyUuidDeleteAddAugustus() throws Exception {
rememberCounter(InternalCounters.SHADOW_FETCH_OPERATION_COUNT);
reconciliationTaskResultListener.clear();

// WHEN
when();
restartTask(TASK_RECONCILE_DUMMY_UUID_OID);

// THEN
then();

waitForTaskNextRunAssertSuccess(taskBefore, true);

// THEN
then();
reconciliationTaskResultListener.assertResult(RESOURCE_DUMMY_UUID_OID, 0, 1, 0, 1);

List<PrismObject<UserType>> users = modelService.searchObjects(UserType.class, null, null, task, result);
Expand All @@ -285,6 +269,7 @@ public void test220ReconcileDummyUuidDeleteAddAugustus() throws Exception {
display("Recon task result", reconTaskResult);
TestUtil.assertSuccess(reconTaskResult.getOperation(), reconTaskResult, 4); // there is an error deep inside (that is expected)

// @formatter:off
augustusShadowOid = assertUserAfterByUsername(USER_AUGUSTUS_NAME)
.links()
.assertLinks(1, 1)
Expand All @@ -294,6 +279,7 @@ public void test220ReconcileDummyUuidDeleteAddAugustus() throws Exception {
.by().dead(false).relation(ORG_DEFAULT).find()
.assertOidDifferentThan(augustusShadowOid)
.getOid();
// @formatter:on
}

/**
Expand All @@ -302,7 +288,7 @@ public void test220ReconcileDummyUuidDeleteAddAugustus() throws Exception {
*/
@Test
public void test230ReconcileDummyUuidDeleteAugustusAddAugustina() throws Exception {
// GIVEN
given();
Task task = getTestTask();
OperationResult result = task.getResult();
assumeAssignmentPolicy(AssignmentPolicyEnforcementType.NONE);
Expand Down Expand Up @@ -332,17 +318,12 @@ public void test230ReconcileDummyUuidDeleteAugustusAddAugustina() throws Excepti
rememberCounter(InternalCounters.SHADOW_FETCH_OPERATION_COUNT);
reconciliationTaskResultListener.clear();

// WHEN
when();
restartTask(TASK_RECONCILE_DUMMY_UUID_OID);

// THEN
then();

waitForTaskNextRunAssertSuccess(taskBefore, true);

// THEN
then();
reconciliationTaskResultListener.assertResult(RESOURCE_DUMMY_UUID_OID, 0, 1, 0, 2);

List<PrismObject<UserType>> users = modelService.searchObjects(UserType.class, null, null, task, result);
Expand All @@ -369,6 +350,7 @@ public void test230ReconcileDummyUuidDeleteAugustusAddAugustina() throws Excepti
display("Recon task result", reconTaskResult);
TestUtil.assertSuccess(reconTaskResult.getOperation(), reconTaskResult, 4); // there is an error deep inside (that is expected)

// @formatter:off
assertUserAfterByUsername(USER_AUGUSTUS_NAME)
.displayWithProjections()
.links()
Expand All @@ -377,6 +359,7 @@ public void test230ReconcileDummyUuidDeleteAugustusAddAugustina() throws Excepti
.assertCount(2)
.by().dead(false).find()
.assertOidDifferentThan(augustusShadowOid);
// @formatter:on
}

private void assertReconAuditModifications(int expectedModifications, String taskOid) {
Expand Down Expand Up @@ -479,5 +462,4 @@ private void assertImportedUser(PrismObject<UserType> user, String... resourceOi
.assertKind(ShadowKindType.ACCOUNT);
}
}

}
9 changes: 5 additions & 4 deletions model/model-intest/testng-integration-sqale.xml
Original file line number Diff line number Diff line change
Expand Up @@ -15,17 +15,18 @@ mvn integration-test -P sqale -pl model/model-intest/
<listeners>
<listener class-name="com.evolveum.midpoint.tools.testng.AlphabeticalMethodInterceptor"/>
</listeners>
<!-- TODO were in unit tests - but why?
<!-- TODO were in unit tests - but why? -->
<test name="Security" preserve-order="true" parallel="false" verbose="10">
<classes>
<class name="com.evolveum.midpoint.model.intest.security.TestSecurityPrincipal"/>
<!-- TODO missing audit implementation
<class name="com.evolveum.midpoint.model.intest.security.TestSecurityBasic"/>
<class name="com.evolveum.midpoint.model.intest.security.TestSecurityMedium"/>
<class name="com.evolveum.midpoint.model.intest.security.TestSecurityAdvanced"/>
<class name="com.evolveum.midpoint.model.intest.security.TestSecurityMultitenant"/>
-->
</classes>
</test>
-->
<test name="Model Integration" preserve-order="true" parallel="false" verbose="10">
<classes>
<class name="com.evolveum.midpoint.model.intest.TestModelServiceContract"/>
Expand Down Expand Up @@ -108,10 +109,8 @@ mvn integration-test -P sqale -pl model/model-intest/
<class name="com.evolveum.midpoint.model.intest.misc.TestUuidNonUniqueName"/>
<class name="com.evolveum.midpoint.model.intest.misc.TestMigration"/>
<class name="com.evolveum.midpoint.model.intest.TestFunctions"/>
<!--
<class name="com.evolveum.midpoint.model.intest.TestLinkedObjects"/>
<class name="com.evolveum.midpoint.model.intest.TestMemberRecompute"/>
-->
</classes>
</test>
<test name="Synchronization" preserve-order="true" parallel="false" verbose="10">
Expand All @@ -126,6 +125,7 @@ mvn integration-test -P sqale -pl model/model-intest/
<class name="com.evolveum.midpoint.model.intest.sync.TestImportReconAuthorizations"/>
<!--
<class name="com.evolveum.midpoint.model.intest.sync.TestValidityRecomputeTask"/>
-->
<class name="com.evolveum.midpoint.model.intest.sync.TestInboundLiveSyncTask"/>
<class name="com.evolveum.midpoint.model.intest.sync.TestInboundReconTask"/>
<class name="com.evolveum.midpoint.model.intest.sync.TestUuid"/>
Expand All @@ -134,6 +134,7 @@ mvn integration-test -P sqale -pl model/model-intest/
<class name="com.evolveum.midpoint.model.intest.tasks.TestLiveSyncTaskMultithreaded"/>
<class name="com.evolveum.midpoint.model.intest.tasks.TestLiveSyncTaskLegacy"/>
<class name="com.evolveum.midpoint.model.intest.tasks.TestLiveSyncTaskLegacyMultithreaded"/>
<!--
<class name="com.evolveum.midpoint.model.intest.tasks.TestTaskReporting"/>
<class name="com.evolveum.midpoint.model.intest.tasks.TestProgressReporting"/>
</classes>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,7 @@ private UUID checkOid(String oid) {
try {
return UUID.fromString(oid);
} catch (IllegalArgumentException e) {
throw new IllegalArgumentException("OID " + oid + " is invalid", e);
throw new IllegalArgumentException("Invalid UUID string: " + oid, e);
}
}

Expand Down

0 comments on commit ed877cd

Please sign in to comment.