public static void assertModifications(ObjectDelta<?> objectDelta, int expectedNumberOfModifications) { assertModifications(null, objectDelta, expectedNumberOfModifications); }
private PropertyDelta<PolyString> getCheckedPropertyDeltaFromUnion(ObjectDelta<UserType> userDeltaUnion) { userDeltaUnion.checkConsistence(); assertEquals("Wrong OID", USER_FOO_OID, userDeltaUnion.getOid()); PrismAsserts.assertIsModify(userDeltaUnion); PrismAsserts.assertModifications(userDeltaUnion, 1); PropertyDelta<PolyString> fullNameDeltaUnion = userDeltaUnion.findPropertyDelta(UserType.F_FULL_NAME); assertNotNull("No fullName delta after union", fullNameDeltaUnion); return fullNameDeltaUnion; }
@Test public void testPropertyDeltaSwallow01() throws Exception { final String TEST_NAME="testPropertyDeltaSwallow01"; displayTestTitle(TEST_NAME); // GIVEN PrismPropertyDefinition propertyDefinition = getPrismContext().definitionFactory().createPropertyDefinition(UserType.F_DESCRIPTION, DOMUtil.XSD_STRING); PropertyDelta<String> delta1 = new PropertyDeltaImpl<String>(propertyDefinition, PrismTestUtil.getPrismContext()); delta1.addRealValuesToAdd("add1"); ObjectDelta<UserType> objectDelta = new ObjectDeltaImpl<>(UserType.class, ChangeType.MODIFY, PrismTestUtil.getPrismContext()); objectDelta.addModification(delta1); PropertyDelta<String> delta2 = new PropertyDeltaImpl<String>(propertyDefinition, PrismTestUtil.getPrismContext()); delta2.addRealValuesToAdd("add2"); // WHEN objectDelta.swallow(delta2); // THEN System.out.println("Swallowed delta:"); System.out.println(objectDelta.debugDump()); PrismAsserts.assertModifications(objectDelta, 1); PropertyDelta<String> modification = (PropertyDelta<String>) objectDelta.getModifications().iterator().next(); PrismAsserts.assertNoReplace(modification); PrismAsserts.assertAdd(modification, "add1", "add2"); PrismAsserts.assertNoDelete(modification); }
@Test public void testSummarize01() throws Exception { final String TEST_NAME="testSummarize01"; displayTestTitle(TEST_NAME); // GIVEN PrismPropertyDefinition propertyDefinition = getPrismContext().definitionFactory().createPropertyDefinition(UserType.F_DESCRIPTION, DOMUtil.XSD_STRING); PropertyDelta<String> delta1 = new PropertyDeltaImpl<String>(propertyDefinition, PrismTestUtil.getPrismContext()); delta1.addRealValuesToAdd("add1"); ObjectDelta<UserType> objectDelta1 = new ObjectDeltaImpl<>(UserType.class, ChangeType.MODIFY, PrismTestUtil.getPrismContext()); objectDelta1.addModification(delta1); PropertyDelta<String> delta2 = new PropertyDeltaImpl<String>(propertyDefinition, PrismTestUtil.getPrismContext()); delta2.addRealValuesToAdd("add2"); ObjectDelta<UserType> objectDelta2 = new ObjectDeltaImpl<>(UserType.class, ChangeType.MODIFY, PrismTestUtil.getPrismContext()); objectDelta2.addModification(delta2); // WHEN ObjectDelta<UserType> sumDelta = ObjectDeltaCollectionsUtil.summarize(objectDelta1, objectDelta2); // THEN System.out.println("Summarized delta:"); System.out.println(sumDelta.debugDump()); PrismAsserts.assertModifications(sumDelta, 1); PropertyDelta<String> modification = (PropertyDelta<String>) sumDelta.getModifications().iterator().next(); PrismAsserts.assertNoReplace(modification); PrismAsserts.assertAdd(modification, "add1", "add2"); PrismAsserts.assertNoDelete(modification); }
@Test public void testSummarize06() throws Exception { final String TEST_NAME="testSummarize06"; displayTestTitle(TEST_NAME); // GIVEN PrismReferenceDefinition referenceDefinition = new PrismReferenceDefinitionImpl(UserType.F_PARENT_ORG_REF, OBJECT_REFERENCE_TYPE_QNAME, PrismTestUtil.getPrismContext()); ReferenceDelta delta1 = new ReferenceDeltaImpl(referenceDefinition, PrismTestUtil.getPrismContext()); delta1.addValueToAdd(new PrismReferenceValueImpl("oid1")); ObjectDelta<UserType> objectDelta1 = new ObjectDeltaImpl<>(UserType.class, ChangeType.MODIFY, PrismTestUtil.getPrismContext()); objectDelta1.addModification(delta1); ReferenceDelta delta2 = new ReferenceDeltaImpl(referenceDefinition, PrismTestUtil.getPrismContext()); delta2.addValueToAdd(new PrismReferenceValueImpl("oid1")); // here we add the same value ObjectDelta<UserType> objectDelta2 = new ObjectDeltaImpl<>(UserType.class, ChangeType.MODIFY, PrismTestUtil.getPrismContext()); objectDelta2.addModification(delta2); // WHEN ObjectDelta<UserType> sumDelta = ObjectDeltaCollectionsUtil.summarize(objectDelta1, objectDelta2); // THEN System.out.println("Summarized delta:"); System.out.println(sumDelta.debugDump()); PrismAsserts.assertModifications(sumDelta, 1); ReferenceDelta modification = (ReferenceDelta) sumDelta.getModifications().iterator().next(); PrismAsserts.assertNoReplace(modification); assertEquals("Invalid number of values to add", 1, modification.getValuesToAdd().size()); PrismAsserts.assertNoDelete(modification); }
@Test public void testSummarize02() throws Exception { final String TEST_NAME="testSummarize02"; displayTestTitle(TEST_NAME); // GIVEN PrismPropertyDefinition propertyDefinition = getPrismContext().definitionFactory().createPropertyDefinition(UserType.F_DESCRIPTION, DOMUtil.XSD_STRING); PropertyDelta<String> delta1 = new PropertyDeltaImpl<String>(propertyDefinition, PrismTestUtil.getPrismContext()); delta1.addRealValuesToDelete("del1"); ObjectDelta<UserType> objectDelta1 = new ObjectDeltaImpl<>(UserType.class, ChangeType.MODIFY, PrismTestUtil.getPrismContext()); objectDelta1.addModification(delta1); PropertyDelta<String> delta2 = new PropertyDeltaImpl<String>(propertyDefinition, PrismTestUtil.getPrismContext()); delta2.addRealValuesToDelete("del2"); ObjectDelta<UserType> objectDelta2 = new ObjectDeltaImpl<>(UserType.class, ChangeType.MODIFY, PrismTestUtil.getPrismContext()); objectDelta2.addModification(delta2); // WHEN ObjectDelta<UserType> sumDelta = ObjectDeltaCollectionsUtil.summarize(objectDelta1, objectDelta2); // THEN System.out.println("Summarized delta:"); System.out.println(sumDelta.debugDump()); PrismAsserts.assertModifications(sumDelta, 1); PropertyDelta<String> modification = (PropertyDelta<String>) sumDelta.getModifications().iterator().next(); PrismAsserts.assertNoReplace(modification); PrismAsserts.assertNoAdd(modification); PrismAsserts.assertDelete(modification, "del1", "del2"); }
@Test public void testSummarize05() throws Exception { final String TEST_NAME="testSummarize05"; displayTestTitle(TEST_NAME); // GIVEN PrismPropertyDefinition propertyDefinition = getPrismContext().definitionFactory().createPropertyDefinition(UserType.F_DESCRIPTION, DOMUtil.XSD_STRING); PropertyDelta<String> delta1 = new PropertyDeltaImpl<String>(propertyDefinition, PrismTestUtil.getPrismContext()); // Let's complicate the things a bit with origin. This should work even though origins do not match. delta1.addValueToAdd(new PrismPropertyValueImpl<>("add1", OriginType.OUTBOUND, null)); ObjectDelta<UserType> objectDelta1 = new ObjectDeltaImpl<>(UserType.class, ChangeType.MODIFY, PrismTestUtil.getPrismContext()); objectDelta1.addModification(delta1); PropertyDelta<String> delta2 = new PropertyDeltaImpl<String>(propertyDefinition, PrismTestUtil.getPrismContext()); delta2.addRealValuesToAdd("add2"); delta2.addRealValuesToDelete("add1"); ObjectDelta<UserType> objectDelta2 = new ObjectDeltaImpl<>(UserType.class, ChangeType.MODIFY, PrismTestUtil.getPrismContext()); objectDelta2.addModification(delta2); // WHEN ObjectDelta<UserType> sumDelta = ObjectDeltaCollectionsUtil.summarize(objectDelta1, objectDelta2); // THEN System.out.println("Summarized delta:"); System.out.println(sumDelta.debugDump()); PrismAsserts.assertModifications(sumDelta, 1); PropertyDelta<String> modification = (PropertyDelta<String>) sumDelta.getModifications().iterator().next(); PrismAsserts.assertNoReplace(modification); PrismAsserts.assertAdd(modification, "add2"); PrismAsserts.assertNoDelete(modification); }
@Test public void testObjectDeltaNarrow03() throws Exception { final String TEST_NAME="testObjectDeltaNarrow03"; displayTestTitle(TEST_NAME); // GIVEN ObjectDelta<UserType> userDelta = getPrismContext().deltaFactory().object() .createModificationAddProperty(UserType.class, USER_FOO_OID, UserType.F_ADDITIONAL_NAMES, "blabla", "bubu"); display("userDelta", userDelta); PrismObject<UserType> user = createUserFoo(); user.setPropertyRealValues(UserType.F_ADDITIONAL_NAMES, "bubu", "blabla"); display("user", user); // WHEN displayWhen(TEST_NAME); ObjectDelta<UserType> narrowedDelta = userDelta.narrow(user); // THEN displayThen(TEST_NAME); display("Narrowed delta", narrowedDelta); PrismAsserts.assertIsModify(narrowedDelta); PrismAsserts.assertModifications(narrowedDelta, 0); }
@Test public void testObjectDeltaNarrowAssignmen01() throws Exception { final String TEST_NAME="testObjectDeltaNarrowAssignmen01"; displayTestTitle(TEST_NAME); // GIVEN ObjectDelta<UserType> userDelta = getPrismContext().deltaFactory().object() .createModificationDeleteContainer(UserType.class, USER_FOO_OID, UserType.F_ASSIGNMENT, createAssignmentValue(null, ASSIGNMENT_PATLAMA_DESCRIPTION)); display("userDelta", userDelta); PrismObject<UserType> user = createUserFoo(); addAssignment(user, ASSIGNMENT_ABRAKADABRA_ID, ASSIGNMENT_ABRAKADABRA_DESCRIPTION); display("user", user); // WHEN displayWhen(TEST_NAME); ObjectDelta<UserType> narrowedDelta = userDelta.narrow(user); // THEN displayThen(TEST_NAME); display("Narrowed delta", narrowedDelta); PrismAsserts.assertIsModify(narrowedDelta); PrismAsserts.assertModifications(narrowedDelta, 0); }
@Test public void testObjectDeltaNarrowAssignmen02() throws Exception { final String TEST_NAME="testObjectDeltaNarrowAssignmen02"; displayTestTitle(TEST_NAME); // GIVEN ObjectDelta<UserType> userDelta = getPrismContext().deltaFactory().object() .createModificationDeleteContainer(UserType.class, USER_FOO_OID, UserType.F_ASSIGNMENT, createAssignmentValue(ASSIGNMENT_PATLAMA_ID, null)); display("userDelta", userDelta); PrismObject<UserType> user = createUserFoo(); addAssignment(user, ASSIGNMENT_ABRAKADABRA_ID, ASSIGNMENT_ABRAKADABRA_DESCRIPTION); display("user", user); // WHEN displayWhen(TEST_NAME); ObjectDelta<UserType> narrowedDelta = userDelta.narrow(user); // THEN displayThen(TEST_NAME); display("Narrowed delta", narrowedDelta); PrismAsserts.assertIsModify(narrowedDelta); PrismAsserts.assertModifications(narrowedDelta, 0); }
@Test public void testObjectDeltaSummarizeModifyReplace() throws Exception { final String TEST_NAME="testObjectDeltaSummarizeModifyReplace"; displayTestTitle(TEST_NAME); // GIVEN ObjectDelta<UserType> userDelta1 = PrismTestUtil.getPrismContext().deltaFactory().object() .createModificationReplaceProperty(UserType.class, USER_FOO_OID, UserType.F_FULL_NAME, PrismTestUtil.createPolyString("foo")); ObjectDelta<UserType> userDelta2 = PrismTestUtil.getPrismContext().deltaFactory().object() .createModificationReplaceProperty(UserType.class, USER_FOO_OID, UserType.F_FULL_NAME, PrismTestUtil.createPolyString("bar")); // WHEN ObjectDelta<UserType> userDeltaSum = ObjectDeltaCollectionsUtil.summarize(userDelta1, userDelta2); // THEN assertEquals("Wrong OID", USER_FOO_OID, userDeltaSum.getOid()); PrismAsserts.assertIsModify(userDeltaSum); PrismAsserts.assertModifications(userDeltaSum, 1); PropertyDelta<PolyString> fullNameDeltaUnion = userDeltaSum.findPropertyDelta(UserType.F_FULL_NAME); assertNotNull("No fullName delta after summarize", fullNameDeltaUnion); PrismAsserts.assertReplace(fullNameDeltaUnion, PrismTestUtil.createPolyString("bar")); }
@Test public void testObjectDeltaNarrow01() throws Exception { final String TEST_NAME="testObjectDeltaNarrow01"; displayTestTitle(TEST_NAME); // GIVEN ObjectDelta<UserType> userDelta = getPrismContext().deltaFactory().object() .createModificationAddProperty(UserType.class, USER_FOO_OID, UserType.F_ADDITIONAL_NAMES, "blabla", "bubu"); display("userDelta", userDelta); PrismObject<UserType> user = createUserFoo(); display("user", user); // WHEN displayWhen(TEST_NAME); ObjectDelta<UserType> narrowedDelta = userDelta.narrow(user); // THEN displayThen(TEST_NAME); display("Narrowed delta", narrowedDelta); PrismAsserts.assertIsModify(narrowedDelta); PrismAsserts.assertModifications(narrowedDelta, 1); PropertyDelta<String> narrowedAdditionalNamesDelta = narrowedDelta.findPropertyDelta(UserType.F_ADDITIONAL_NAMES); assertNotNull("No additionalNames delta after summarize", narrowedAdditionalNamesDelta); PrismAsserts.assertNoReplace(narrowedAdditionalNamesDelta); PrismAsserts.assertAdd(narrowedAdditionalNamesDelta, "blabla", "bubu"); PrismAsserts.assertNoDelete(narrowedAdditionalNamesDelta); }
@Test public void testObjectDeltaSummarizeModifyAdd() throws Exception { final String TEST_NAME="testObjectDeltaSummarizeModifyAdd"; displayTestTitle(TEST_NAME); // GIVEN ObjectDelta<UserType> userDelta1 = PrismTestUtil.getPrismContext().deltaFactory().object() .createModificationAddProperty(UserType.class, USER_FOO_OID, UserType.F_ADDITIONAL_NAMES, PrismTestUtil.createPolyString("foo")); ObjectDelta<UserType> userDelta2 = PrismTestUtil.getPrismContext().deltaFactory().object() .createModificationAddProperty(UserType.class, USER_FOO_OID, UserType.F_ADDITIONAL_NAMES, PrismTestUtil.createPolyString("bar")); // WHEN ObjectDelta<UserType> userDeltaSum = ObjectDeltaCollectionsUtil.summarize(userDelta1, userDelta2); // THEN assertEquals("Wrong OID", USER_FOO_OID, userDeltaSum.getOid()); PrismAsserts.assertIsModify(userDeltaSum); PrismAsserts.assertModifications(userDeltaSum, 1); PropertyDelta<PolyString> namesDeltaUnion = userDeltaSum.findPropertyDelta(UserType.F_ADDITIONAL_NAMES); assertNotNull("No additionalNames delta after summarize", namesDeltaUnion); PrismAsserts.assertAdd(namesDeltaUnion, PrismTestUtil.createPolyString("foo"), PrismTestUtil.createPolyString("bar")); }
@Test public void testObjectDeltaNarrow02() throws Exception { final String TEST_NAME="testObjectDeltaNarrow02"; displayTestTitle(TEST_NAME); // GIVEN ObjectDelta<UserType> userDelta = getPrismContext().deltaFactory().object() .createModificationAddProperty(UserType.class, USER_FOO_OID, UserType.F_ADDITIONAL_NAMES, "blabla", "bubu"); display("userDelta", userDelta); PrismObject<UserType> user = createUserFoo(); user.setPropertyRealValue(UserType.F_ADDITIONAL_NAMES, "bubu"); display("user", user); // WHEN displayWhen(TEST_NAME); ObjectDelta<UserType> narrowedDelta = userDelta.narrow(user); // THEN displayThen(TEST_NAME); display("Narrowed delta", narrowedDelta); PrismAsserts.assertIsModify(narrowedDelta); PrismAsserts.assertModifications(narrowedDelta, 1); PropertyDelta<String> narrowedAdditionalNamesDelta = narrowedDelta.findPropertyDelta(UserType.F_ADDITIONAL_NAMES); assertNotNull("No additionalNames delta after summarize", narrowedAdditionalNamesDelta); PrismAsserts.assertNoReplace(narrowedAdditionalNamesDelta); PrismAsserts.assertAdd(narrowedAdditionalNamesDelta, "blabla"); PrismAsserts.assertNoDelete(narrowedAdditionalNamesDelta); }
@Test public void testObjectDeltaNarrowAssignmen11() throws Exception { final String TEST_NAME="testObjectDeltaNarrowAssignmen11"; displayTestTitle(TEST_NAME); // GIVEN ObjectDelta<UserType> userDelta = getPrismContext().deltaFactory().object() .createModificationDeleteContainer(UserType.class, USER_FOO_OID, UserType.F_ASSIGNMENT, createAssignmentValue(null, ASSIGNMENT_PATLAMA_DESCRIPTION)); display("userDelta", userDelta); PrismObject<UserType> user = createUserFoo(); addAssignment(user, ASSIGNMENT_PATLAMA_ID, ASSIGNMENT_PATLAMA_DESCRIPTION); addAssignment(user, ASSIGNMENT_ABRAKADABRA_ID, ASSIGNMENT_ABRAKADABRA_DESCRIPTION); display("user", user); // WHEN displayWhen(TEST_NAME); ObjectDelta<UserType> narrowedDelta = userDelta.narrow(user); // THEN displayThen(TEST_NAME); display("Narrowed delta", narrowedDelta); PrismAsserts.assertIsModify(narrowedDelta); PrismAsserts.assertModifications(narrowedDelta, 1); assertAssignmentDelete(narrowedDelta, 1); assertAssignmentDelete(narrowedDelta, null, ASSIGNMENT_PATLAMA_DESCRIPTION); assertAssignmentAdd(narrowedDelta, 0); assertAssignmentReplace(narrowedDelta, 0); }
@Test public void testObjectDeltaNarrowAssignmen12() throws Exception { final String TEST_NAME="testObjectDeltaNarrowAssignmen12"; displayTestTitle(TEST_NAME); // GIVEN ObjectDelta<UserType> userDelta = getPrismContext().deltaFactory().object() .createModificationDeleteContainer(UserType.class, USER_FOO_OID, UserType.F_ASSIGNMENT, createAssignmentValue(ASSIGNMENT_PATLAMA_ID, null)); display("userDelta", userDelta); PrismObject<UserType> user = createUserFoo(); addAssignment(user, ASSIGNMENT_PATLAMA_ID, ASSIGNMENT_PATLAMA_DESCRIPTION); addAssignment(user, ASSIGNMENT_ABRAKADABRA_ID, ASSIGNMENT_ABRAKADABRA_DESCRIPTION); display("user", user); // WHEN displayWhen(TEST_NAME); ObjectDelta<UserType> narrowedDelta = userDelta.narrow(user); // THEN displayThen(TEST_NAME); display("Narrowed delta", narrowedDelta); PrismAsserts.assertIsModify(narrowedDelta); PrismAsserts.assertModifications(narrowedDelta, 1); assertAssignmentDelete(narrowedDelta, 1); assertAssignmentDelete(narrowedDelta, ASSIGNMENT_PATLAMA_ID, null); assertAssignmentAdd(narrowedDelta, 0); assertAssignmentReplace(narrowedDelta, 0); }
@Test public void testObjectDeltaSummarizeModifyMix() throws Exception { final String TEST_NAME="testObjectDeltaSummarizeModifyMix"; displayTestTitle(TEST_NAME); // GIVEN ObjectDelta<UserType> userDelta1 = PrismTestUtil.getPrismContext().deltaFactory().object() .createModificationAddProperty(UserType.class, USER_FOO_OID, UserType.F_ADDITIONAL_NAMES, PrismTestUtil.createPolyString("baz")); ObjectDelta<UserType> userDelta2 = PrismTestUtil.getPrismContext().deltaFactory().object() .createModificationReplaceProperty(UserType.class, USER_FOO_OID, UserType.F_ADDITIONAL_NAMES, PrismTestUtil.createPolyString("foo")); ObjectDelta<UserType> userDelta3 = PrismTestUtil.getPrismContext().deltaFactory().object() .createModificationAddProperty(UserType.class, USER_FOO_OID, UserType.F_ADDITIONAL_NAMES, PrismTestUtil.createPolyString("bar")); // WHEN ObjectDelta<UserType> userDeltaSum = ObjectDeltaCollectionsUtil.summarize(userDelta1, userDelta2, userDelta3); // THEN assertEquals("Wrong OID", USER_FOO_OID, userDeltaSum.getOid()); PrismAsserts.assertIsModify(userDeltaSum); PrismAsserts.assertModifications(userDeltaSum, 1); PropertyDelta<PolyString> namesDeltaUnion = userDeltaSum.findPropertyDelta(UserType.F_ADDITIONAL_NAMES); assertNotNull("No additionalNames delta after summarize", namesDeltaUnion); PrismAsserts.assertReplace(namesDeltaUnion, PrismTestUtil.createPolyString("foo"), PrismTestUtil.createPolyString("bar")); }
dummyAuditService.assertExecutionDeltas(1); dummyAuditService.assertHasDelta(ChangeType.MODIFY, UserType.class); PrismAsserts.assertModifications(dummyAuditService.getExecutionDelta(0).getObjectDelta(), 11); dummyAuditService.assertTarget(userBefore.getOid()); dummyAuditService.assertExecutionSuccess();
dummyAuditService.assertExecutionDeltas(1); dummyAuditService.assertHasDelta(ChangeType.MODIFY, UserType.class); PrismAsserts.assertModifications(dummyAuditService.getExecutionDelta(0).getObjectDelta(), 7); dummyAuditService.assertTarget(userBefore.getOid()); dummyAuditService.assertExecutionSuccess();
dummyAuditService.assertExecutionDeltas(1); dummyAuditService.assertHasDelta(ChangeType.MODIFY, UserType.class); PrismAsserts.assertModifications(dummyAuditService.getExecutionDelta(0).getObjectDelta(), 7); dummyAuditService.assertTarget(userBefore.getOid()); dummyAuditService.assertExecutionSuccess();