Skip to content

Commit

Permalink
Migrate medium ID Match test to new correlation
Browse files Browse the repository at this point in the history
This test now uses simplified configuration and run-time data storage
(i.e. identity container instead of hacked solution utilizing extension
items).
  • Loading branch information
mederly committed Aug 4, 2022
1 parent d1a7e55 commit 355c58e
Show file tree
Hide file tree
Showing 10 changed files with 197 additions and 481 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,12 @@
import java.util.List;

import com.evolveum.midpoint.model.api.correlator.CorrelationService;
import com.evolveum.midpoint.prism.path.ItemName;
import com.evolveum.midpoint.prism.path.ItemPath;
import com.evolveum.midpoint.schema.util.cases.OwnerOptionIdentifier;

import com.evolveum.midpoint.util.exception.SchemaException;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectReferenceType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ResourceObjectOwnerOptionType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;

import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
Expand All @@ -36,8 +37,6 @@
import com.evolveum.midpoint.test.util.MidPointTestConstants;
import com.evolveum.midpoint.testing.story.AbstractStoryTest;
import com.evolveum.midpoint.util.exception.CommonException;
import com.evolveum.midpoint.xml.ns._public.common.common_3.CaseType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.CaseWorkItemType;

/**
* Common superclass for all correlation tests.
Expand All @@ -52,6 +51,12 @@ public abstract class AbstractCorrelationTest extends AbstractStoryTest {

public static final File SYSTEM_CONFIGURATION_FILE = new File(TEST_DIR, "system-configuration.xml");

private static final ItemName EXT_DATE_OF_BIRTH = new ItemName(NS_EXT, "dateOfBirth");
private static final ItemName EXT_NATIONAL_ID = new ItemName(NS_EXT, "nationalId");

static final ItemPath PATH_DATE_OF_BIRTH = ItemPath.create(UserType.F_EXTENSION, EXT_DATE_OF_BIRTH);
static final ItemPath PATH_NATIONAL_ID = ItemPath.create(UserType.F_EXTENSION, EXT_NATIONAL_ID);

@Autowired CorrelationService correlationService;
@Autowired CorrelationCaseManager correlationCaseManager;
@Autowired CaseService caseService;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@

import java.io.File;

import static com.evolveum.midpoint.schema.constants.SchemaConstants.INTENT_DEFAULT;

import static com.evolveum.midpoint.xml.ns._public.common.common_3.ShadowKindType.ACCOUNT;

import static org.assertj.core.api.Assertions.assertThat;

/**
Expand All @@ -33,9 +37,6 @@ public abstract class AbstractMediumIdMatchCorrelationTest extends AbstractIdMat

private static final File SYSTEM_CONFIGURATION_FILE = new File(TEST_DIR, "system-configuration.xml");

private static final TestResource<FunctionLibraryType> FUNCTION_LIBRARY_MYLIB =
new TestResource<>(TEST_DIR, "function-library-mylib.xml", "fea7be76-a57d-435e-b874-b0f8b4ca39c9");

private static final TestResource<ObjectTemplateType> OBJECT_TEMPLATE_USER =
new TestResource<>(TEST_DIR, "object-template-user.xml", "bf275746-f2ce-4ae3-9e91-0c40e26422b7");

Expand Down Expand Up @@ -63,7 +64,6 @@ public void initSystem(Task initTask, OperationResult initResult) throws Excepti
super.initSystem(initTask, initResult);

addObject(OBJECT_TEMPLATE_USER, initTask, initResult);
addObject(FUNCTION_LIBRARY_MYLIB, initTask, initResult);

RESOURCE_SIS.initializeAndTest(this, initTask, initResult);
RESOURCE_HR.initializeAndTest(this, initTask, initResult);
Expand Down Expand Up @@ -102,20 +102,29 @@ public void test100ImportJohnFromSis() throws Exception {
.rootActivityState()
.progress()
.assertCommitted(1, 0, 0);
// @formatter:on

johnOid = assertUserAfterByUsername("smith1")
johnOid = assertUserAfter(findUserByUsernameFullRequired("smith1"))
.assertGivenName("John")
.assertFamilyName("Smith")
.assertLinks(1, 0)
.assertExtensionValue("sisId", "1")
.assertExtensionValue("sisGivenName", "John")
.assertExtensionValue("sisFamilyName", "Smith")
.assertExtensionValue("sisDateOfBirth", "2004-02-06")
.assertExtensionValue("sisNationalId", "040206/1328")
.assertExtensionValue("dateOfBirth", "2004-02-06")
.assertExtensionValue("nationalId", "040206/1328")
.assertLinks(1, 0)
.identities()
.fromResource(RESOURCE_SIS.oid, ACCOUNT, INTENT_DEFAULT, null)
.assertOriginalItem(UserType.F_GIVEN_NAME, createPolyString("John"))
.assertOriginalItem(UserType.F_FAMILY_NAME, createPolyString("Smith"))
.assertOriginalItem(PATH_DATE_OF_BIRTH, "2004-02-06")
.assertOriginalItem(PATH_NATIONAL_ID, "040206/1328")
.end()
.withoutSource()
.assertNormalizedItem("givenName", "john")
.assertNormalizedItem("familyName", "smith")
.assertNormalizedItem("dateOfBirth", "20040206")
.assertNormalizedItem("nationalId", "0402061328")
.end()
.end()
.getOid();
// @formatter:on
}

/**
Expand Down Expand Up @@ -158,22 +167,34 @@ public void test110ImportJohnFromHrDisputed() throws Exception {
resolveCase(aCase, johnOid, task, result);

then("John should be updated");
assertUserAfterByUsername("smith1")
// @formatter:off
assertUserAfter(findUserByUsernameFullRequired("smith1"))
.assertGivenName("John")
.assertFamilyName("Smith")
.assertLinks(2, 0)
.assertExtensionValue("hrId", "A1001")
.assertExtensionValue("hrGivenName", "John")
.assertExtensionValue("hrFamilyName", "Smith")
.assertExtensionValue("hrDateOfBirth", "2004-02-06")
.assertExtensionValue("hrNationalId", "040206/132x")
.assertExtensionValue("sisId", "1")
.assertExtensionValue("sisGivenName", "John")
.assertExtensionValue("sisFamilyName", "Smith")
.assertExtensionValue("sisDateOfBirth", "2004-02-06")
.assertExtensionValue("sisNationalId", "040206/1328")
.assertExtensionValue("dateOfBirth", "2004-02-06")
.assertExtensionValue("nationalId", "040206/1328");
.assertExtensionValue("nationalId", "040206/1328")
.assertLinks(2, 0)
.identities()
.fromResource(RESOURCE_SIS.oid, ACCOUNT, INTENT_DEFAULT, null)
.assertOriginalItem(UserType.F_GIVEN_NAME, createPolyString("John"))
.assertOriginalItem(UserType.F_FAMILY_NAME, createPolyString("Smith"))
.assertOriginalItem(PATH_DATE_OF_BIRTH, "2004-02-06")
.assertOriginalItem(PATH_NATIONAL_ID, "040206/1328")
.end()
.fromResource(RESOURCE_HR.oid, ACCOUNT, INTENT_DEFAULT, null)
.assertOriginalItem(UserType.F_GIVEN_NAME, createPolyString("John"))
.assertOriginalItem(UserType.F_FAMILY_NAME, createPolyString("Smith"))
.assertOriginalItem(PATH_DATE_OF_BIRTH, "2004-02-06")
.assertOriginalItem(PATH_NATIONAL_ID, "040206/132x")
.end()
.withoutSource()
.assertNormalizedItem("givenName", "john")
.assertNormalizedItem("familyName", "smith")
.assertNormalizedItem("dateOfBirth", "20040206")
.assertNormalizedItem("nationalId", "0402061328", "040206132x")
.end()
.end();
// @formatter:on
}

/**
Expand Down Expand Up @@ -216,26 +237,39 @@ public void test120ImportJohnFromExternalDisputed() throws Exception {
resolveCase(aCase, johnOid, task, result);

then("John should be updated");
assertUserAfterByUsername("smith1")
// @formatter:off
assertUserAfter(findUserByUsernameFullRequired("smith1"))
.assertGivenName("John")
.assertFamilyName("Smith")
.assertLinks(3, 0)
.assertExtensionValue("externalId", "X1")
.assertExtensionValue("externalGivenName", "John")
.assertExtensionValue("externalFamilyName", "Smith")
.assertExtensionValue("externalDateOfBirth", "2004-02-26")
.assertExtensionValue("externalNationalId", "040206/132x")
.assertExtensionValue("hrId", "A1001")
.assertExtensionValue("hrGivenName", "John")
.assertExtensionValue("hrFamilyName", "Smith")
.assertExtensionValue("hrDateOfBirth", "2004-02-06")
.assertExtensionValue("hrNationalId", "040206/132x")
.assertExtensionValue("sisId", "1")
.assertExtensionValue("sisGivenName", "John")
.assertExtensionValue("sisFamilyName", "Smith")
.assertExtensionValue("sisDateOfBirth", "2004-02-06")
.assertExtensionValue("sisNationalId", "040206/1328")
.assertExtensionValue("dateOfBirth", "2004-02-06")
.assertExtensionValue("nationalId", "040206/1328");
.assertExtensionValue("nationalId", "040206/1328")
.assertLinks(3, 0)
.identities()
.fromResource(RESOURCE_SIS.oid, ACCOUNT, INTENT_DEFAULT, null)
.assertOriginalItem(UserType.F_GIVEN_NAME, createPolyString("John"))
.assertOriginalItem(UserType.F_FAMILY_NAME, createPolyString("Smith"))
.assertOriginalItem(PATH_DATE_OF_BIRTH, "2004-02-06")
.assertOriginalItem(PATH_NATIONAL_ID, "040206/1328")
.end()
.fromResource(RESOURCE_HR.oid, ACCOUNT, INTENT_DEFAULT, null)
.assertOriginalItem(UserType.F_GIVEN_NAME, createPolyString("John"))
.assertOriginalItem(UserType.F_FAMILY_NAME, createPolyString("Smith"))
.assertOriginalItem(PATH_DATE_OF_BIRTH, "2004-02-06")
.assertOriginalItem(PATH_NATIONAL_ID, "040206/132x")
.end()
.fromResource(RESOURCE_EXTERNAL.oid, ACCOUNT, INTENT_DEFAULT, null)
.assertOriginalItem(UserType.F_GIVEN_NAME, createPolyString("John"))
.assertOriginalItem(UserType.F_FAMILY_NAME, createPolyString("Smith"))
.assertOriginalItem(PATH_DATE_OF_BIRTH, "2004-02-26")
.assertOriginalItem(PATH_NATIONAL_ID, "040206/132x")
.end()
.withoutSource()
.assertNormalizedItem("givenName", "john")
.assertNormalizedItem("familyName", "smith")
.assertNormalizedItem("dateOfBirth", "20040206", "20040226")
.assertNormalizedItem("nationalId", "0402061328", "040206132x")
.end()
.end();
// @formatter:on
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
import org.testng.annotations.Test;

import com.evolveum.midpoint.prism.PrismObject;
import com.evolveum.midpoint.prism.path.ItemPath;
import com.evolveum.midpoint.schema.result.OperationResult;
import com.evolveum.midpoint.task.api.Task;
import com.evolveum.midpoint.test.CsvResource;
Expand Down Expand Up @@ -66,9 +65,6 @@ public class TestInternalCorrelationMedium extends AbstractCorrelationTest {

private String johnOid;

private static final ItemPath PATH_DATE_OF_BIRTH = ItemPath.create(UserType.F_EXTENSION, "dateOfBirth"); // TODO NS URI
private static final ItemPath PATH_NATIONAL_ID = ItemPath.create(UserType.F_EXTENSION, "nationalId"); // TODO NS URI

@BeforeMethod
public void onNativeOnly() {
skipIfNotNativeRepository();
Expand Down

This file was deleted.

0 comments on commit 355c58e

Please sign in to comment.