protected PrismObjectDefinition<UserType> getUserTypeDefinition() { return PrismInternalTestUtil.getUserTypeDefinition(); }
@Test public void testPropertyUserSimpleDiffMultiAddStaticNull1() throws Exception { System.out.println("\n\n===[ testPropertyUserSimpleDiffMultiAddStaticNull1 ]===\n"); // GIVEN PrismObjectDefinition<UserType> userDef = getUserTypeDefinition(); PrismObject<UserType> user2 = userDef.instantiate(); user2.setOid(USER_JACK_OID); PrismProperty<String> additionalNamesProp2 = user2.findOrCreateProperty(UserType.F_ADDITIONAL_NAMES); additionalNamesProp2.addRealValue("foo"); additionalNamesProp2.addRealValue("bar"); // WHEN PropertyDelta<String> delta = ItemUtil.diff(null, additionalNamesProp2); // THEN assertNotNull(delta); System.out.println(delta.debugDump()); PrismAsserts.assertAdd(delta, "foo", "bar"); delta.checkConsistence(); }
@Test public void testPropertyUserSimpleDiffMultiAddStaticNull2() throws Exception { System.out.println("\n\n===[ testPropertyUserSimpleDiffMultiAddStaticNull2 ]===\n"); // GIVEN PrismObjectDefinition<UserType> userDef = getUserTypeDefinition(); PrismObject<UserType> user2 = userDef.instantiate(); user2.setOid(USER_JACK_OID); PrismProperty<String> additionalNamesProp1 = user2.findOrCreateProperty(UserType.F_ADDITIONAL_NAMES); additionalNamesProp1.addRealValue("bar"); additionalNamesProp1.addRealValue("baz"); // WHEN PropertyDelta<String> delta = ItemUtil.diff(additionalNamesProp1, null); // THEN assertNotNull(delta); System.out.println(delta.debugDump()); PrismAsserts.assertDelete(delta, "bar", "baz"); delta.checkConsistence(); }
@Test public void testContainerSimpleDiffModificationsNoChange() throws Exception { System.out.println("\n\n===[ testContainerSimpleDiffModificationsNoChange ]===\n"); // GIVEN PrismObjectDefinition<UserType> userDef = getUserTypeDefinition(); PrismContainerDefinition<AssignmentType> assignmentContDef = userDef.findContainerDefinition(UserType.F_ASSIGNMENT); PrismContainer<AssignmentType> ass1 = assignmentContDef.instantiate(); PrismContainerValue<AssignmentType> ass1cval = ass1.createNewValue(); ass1cval.setPropertyRealValue(AssignmentType.F_DESCRIPTION, "blah blah", PrismTestUtil.getPrismContext()); PrismContainer<AssignmentType> ass2 = assignmentContDef.instantiate(); PrismContainerValue<AssignmentType> ass2cval = ass2.createNewValue(); ass2cval.setPropertyRealValue(AssignmentType.F_DESCRIPTION, "blah blah", PrismTestUtil.getPrismContext()); // WHEN Collection<? extends ItemDelta> modifications = ass1.diffModifications(ass2); // THEN assertNotNull(modifications); System.out.println(DebugUtil.debugDump(modifications)); assertEquals("Unexpected number of midifications", 0, modifications.size()); ItemDeltaCollectionsUtil.checkConsistence(modifications); }
@Test public void testPropertySimplePropertyDiffNoChange() throws Exception { System.out.println("\n\n===[ testPropertySimplePropertyDiffNoChange ]===\n"); // GIVEN PrismObjectDefinition<UserType> userDef = getUserTypeDefinition(); PrismObject<UserType> user1 = userDef.instantiate(); user1.setOid(USER_JACK_OID); user1.setPropertyRealValue(UserType.F_NAME, PrismTestUtil.createPolyString("test name")); PrismProperty<PolyString> user1NameProp = user1.findProperty(UserType.F_NAME); PrismObject<UserType> user2 = userDef.instantiate(); user2.setOid(USER_JACK_OID); user2.setPropertyRealValue(UserType.F_NAME, PrismTestUtil.createPolyString("test name")); PrismProperty<PolyString> user2NameProp = user2.findProperty(UserType.F_NAME); // WHEN PropertyDelta<PolyString> delta = user1NameProp.diff(user2NameProp); // THEN assertNull(delta); }
@Test public void testPropertySimplePropertyDiffNoChangeStatic() throws Exception { System.out.println("\n\n===[ testPropertySimplePropertyDiffNoChangeStatic ]===\n"); // GIVEN PrismObjectDefinition<UserType> userDef = getUserTypeDefinition(); PrismObject<UserType> user1 = userDef.instantiate(); user1.setOid(USER_JACK_OID); user1.setPropertyRealValue(UserType.F_NAME, PrismTestUtil.createPolyString("test name")); PrismProperty<PolyString> user1NameProp = user1.findProperty(UserType.F_NAME); PrismObject<UserType> user2 = userDef.instantiate(); user2.setOid(USER_JACK_OID); user2.setPropertyRealValue(UserType.F_NAME, PrismTestUtil.createPolyString("test name")); PrismProperty<PolyString> user2NameProp = user2.findProperty(UserType.F_NAME); // WHEN PropertyDelta<PolyString> delta = ItemUtil.diff(user1NameProp, user2NameProp); // THEN assertNull(delta); }
@Test public void testContainerValueDiffDesciptionNoPath() throws Exception { System.out.println("\n\n===[ testContainerValueDiffDesciptionNoPath ]===\n"); // GIVEN PrismObjectDefinition<UserType> userDef = getUserTypeDefinition(); PrismContainerDefinition<AssignmentType> assignmentContDef = userDef.findContainerDefinition(UserType.F_ASSIGNMENT); PrismContainer<AssignmentType> ass1 = assignmentContDef.instantiate(); PrismContainerValue<AssignmentType> ass1cval = ass1.createNewValue(); ass1cval.setPropertyRealValue(AssignmentType.F_DESCRIPTION, "blah blah", PrismTestUtil.getPrismContext()); PrismContainer<AssignmentType> ass2 = assignmentContDef.instantiate(); PrismContainerValue<AssignmentType> ass2cval = ass2.createNewValue(); ass2cval.setPropertyRealValue(AssignmentType.F_DESCRIPTION, "chamalalia patlama paprtala", PrismTestUtil.getPrismContext()); // WHEN Collection<? extends ItemDelta> modifications = ass1cval.diff(ass2cval); // THEN assertNotNull(modifications); System.out.println(DebugUtil.debugDump(modifications)); assertEquals("Unexpected number of midifications", 1, modifications.size()); PrismAsserts.assertPropertyReplace( modifications, ItemPath.create(UserType.F_ASSIGNMENT, AssignmentType.F_DESCRIPTION), "chamalalia patlama paprtala"); ItemDeltaCollectionsUtil.checkConsistence(modifications); }
@Test public void testUserSimplePropertyDiffNoChange() throws Exception { System.out.println("\n\n===[ testUserSimplePropertyDiffNoChange ]===\n"); // GIVEN PrismObjectDefinition<UserType> userDef = getUserTypeDefinition(); PrismObject<UserType> user1 = userDef.instantiate(); user1.setOid(USER_JACK_OID); user1.setPropertyRealValue(UserType.F_NAME, PrismTestUtil.createPolyString("test name")); PrismObject<UserType> user2 = userDef.instantiate(); user2.setOid(USER_JACK_OID); user2.setPropertyRealValue(UserType.F_NAME, PrismTestUtil.createPolyString("test name")); // WHEN ObjectDelta<UserType> delta = user1.diff(user2); // THEN assertNotNull(delta); assertEquals("Unexpected number of midifications", 0, delta.getModifications().size()); assertEquals("Wrong OID", USER_JACK_OID, delta.getOid()); delta.checkConsistence(); }
@Test public void testPropertyUserSimpleDiffMultiNoChange() throws Exception { System.out.println("\n\n===[ testPropertyUserSimpleDiffMultiNoChange ]===\n"); // GIVEN PrismObjectDefinition<UserType> userDef = getUserTypeDefinition(); PrismObject<UserType> user1 = userDef.instantiate(); user1.setOid(USER_JACK_OID); PrismProperty<String> additionalNamesProp1 = user1.findOrCreateProperty(UserType.F_ADDITIONAL_NAMES); additionalNamesProp1.addRealValue("foo"); additionalNamesProp1.addRealValue("bar"); PrismObject<UserType> user2 = userDef.instantiate(); user2.setOid(USER_JACK_OID); PrismProperty<String> additionalNamesProp2 = user2.findOrCreateProperty(UserType.F_ADDITIONAL_NAMES); additionalNamesProp2.addRealValue("foo"); additionalNamesProp2.addRealValue("bar"); // WHEN PropertyDelta<String> delta = additionalNamesProp1.diff(additionalNamesProp2); // THEN assertNull(delta); }
@Test public void testPropertyUserSimpleDiffMultiNoChangeStatic() throws Exception { System.out.println("\n\n===[ testPropertyUserSimpleDiffMultiNoChangeStatic ]===\n"); // GIVEN PrismObjectDefinition<UserType> userDef = getUserTypeDefinition(); PrismObject<UserType> user1 = userDef.instantiate(); user1.setOid(USER_JACK_OID); PrismProperty<String> additionalNamesProp1 = user1.findOrCreateProperty(UserType.F_ADDITIONAL_NAMES); additionalNamesProp1.addRealValue("foo"); additionalNamesProp1.addRealValue("bar"); PrismObject<UserType> user2 = userDef.instantiate(); user2.setOid(USER_JACK_OID); PrismProperty<String> additionalNamesProp2 = user2.findOrCreateProperty(UserType.F_ADDITIONAL_NAMES); additionalNamesProp2.addRealValue("foo"); additionalNamesProp2.addRealValue("bar"); // WHEN PropertyDelta<String> delta = ItemUtil.diff(additionalNamesProp1, additionalNamesProp2); // THEN assertNull(delta); }
@Test public void testUserSimplePropertyDiffReplace() throws Exception { System.out.println("\n\n===[ testUserSimplePropertyDiffReplace ]===\n"); // GIVEN PrismObjectDefinition<UserType> userDef = getUserTypeDefinition(); PrismObject<UserType> user1 = userDef.instantiate(); user1.setOid(USER_JACK_OID); user1.setPropertyRealValue(UserType.F_NAME, PrismTestUtil.createPolyString("test name")); PrismObject<UserType> user2 = userDef.instantiate(); user2.setOid(USER_JACK_OID); user2.setPropertyRealValue(UserType.F_NAME, PrismTestUtil.createPolyString("other name")); // WHEN ObjectDelta<UserType> delta = user1.diff(user2); // THEN assertNotNull(delta); System.out.println(delta.debugDump()); assertEquals("Unexpected number of midifications", 1, delta.getModifications().size()); PrismAsserts.assertPropertyReplace(delta, UserType.F_NAME, PrismTestUtil.createPolyString("other name")); assertEquals("Wrong OID", USER_JACK_OID, delta.getOid()); delta.checkConsistence(); }
@Test public void testPropertyUserSimplePropertyDiffReplaceStatic() throws Exception { System.out.println("\n\n===[ testPropertyUserSimplePropertyDiffReplaceStatic ]===\n"); // GIVEN PrismObjectDefinition<UserType> userDef = getUserTypeDefinition(); PrismObject<UserType> user1 = userDef.instantiate(); user1.setOid(USER_JACK_OID); user1.setPropertyRealValue(UserType.F_NAME, PrismTestUtil.createPolyString("test name")); PrismProperty<PolyString> user1NameProp = user1.findProperty(UserType.F_NAME); PrismObject<UserType> user2 = userDef.instantiate(); user2.setOid(USER_JACK_OID); user2.setPropertyRealValue(UserType.F_NAME, PrismTestUtil.createPolyString("other name")); PrismProperty<PolyString> user2NameProp = user2.findProperty(UserType.F_NAME); // WHEN PropertyDelta<PolyString> delta = ItemUtil.diff(user1NameProp, user2NameProp); // THEN assertNotNull(delta); System.out.println(delta.debugDump()); PrismAsserts.assertReplace(delta, PrismTestUtil.createPolyString("other name")); delta.checkConsistence(); }
@Test public void testPropertyUserSimplePropertyDiffReplace() throws Exception { System.out.println("\n\n===[ testPropertyUserSimplePropertyDiffReplace ]===\n"); // GIVEN PrismObjectDefinition<UserType> userDef = getUserTypeDefinition(); PrismObject<UserType> user1 = userDef.instantiate(); user1.setOid(USER_JACK_OID); user1.setPropertyRealValue(UserType.F_NAME, PrismTestUtil.createPolyString("test name")); PrismProperty<PolyString> user1NameProp = user1.findProperty(UserType.F_NAME); PrismObject<UserType> user2 = userDef.instantiate(); user2.setOid(USER_JACK_OID); user2.setPropertyRealValue(UserType.F_NAME, PrismTestUtil.createPolyString("other name")); PrismProperty<PolyString> user2NameProp = user2.findProperty(UserType.F_NAME); // WHEN PropertyDelta<PolyString> delta = user1NameProp.diff(user2NameProp); // THEN assertNotNull(delta); System.out.println(delta.debugDump()); PrismAsserts.assertReplace(delta, PrismTestUtil.createPolyString("other name")); delta.checkConsistence(); }
@Test public void testPropertyUserSimpleDiffMultiAdd() throws Exception { System.out.println("\n\n===[ testPropertyUserSimpleDiffMultiAdd ]===\n"); // GIVEN PrismObjectDefinition<UserType> userDef = getUserTypeDefinition(); PrismObject<UserType> user1 = userDef.instantiate(); user1.setOid(USER_JACK_OID); PrismProperty<String> additionalNamesProp1 = user1.findOrCreateProperty(UserType.F_ADDITIONAL_NAMES); additionalNamesProp1.addRealValue("foo"); additionalNamesProp1.addRealValue("bar"); PrismObject<UserType> user2 = userDef.instantiate(); user2.setOid(USER_JACK_OID); PrismProperty<String> additionalNamesProp2 = user2.findOrCreateProperty(UserType.F_ADDITIONAL_NAMES); additionalNamesProp2.addRealValue("foo"); additionalNamesProp2.addRealValue("bar"); additionalNamesProp2.addRealValue("baz"); // WHEN PropertyDelta<String> delta = additionalNamesProp1.diff(additionalNamesProp2); // THEN assertNotNull(delta); System.out.println(delta.debugDump()); PrismAsserts.assertAdd(delta, "baz"); delta.checkConsistence(); }
@Test public void testContainerDiffModificationsDesciption() throws Exception { System.out.println("\n\n===[ testContainerDiffModificationsDesciption ]===\n"); // GIVEN PrismObjectDefinition<UserType> userDef = getUserTypeDefinition(); PrismContainerDefinition<AssignmentType> assignmentContDef = userDef.findContainerDefinition(UserType.F_ASSIGNMENT); PrismContainer<AssignmentType> ass1 = assignmentContDef.instantiate(); PrismContainerValue<AssignmentType> ass1cval = ass1.createNewValue(); ass1cval.setId(1L); ass1cval.setPropertyRealValue(AssignmentType.F_DESCRIPTION, "blah blah", PrismTestUtil.getPrismContext()); PrismContainer<AssignmentType> ass2 = assignmentContDef.instantiate(); PrismContainerValue<AssignmentType> ass2cval = ass2.createNewValue(); ass2cval.setId(1L); ass2cval.setPropertyRealValue(AssignmentType.F_DESCRIPTION, "chamalalia patlama paprtala", PrismTestUtil.getPrismContext()); // WHEN Collection<? extends ItemDelta> modifications = ass1.diffModifications(ass2); // THEN assertNotNull(modifications); System.out.println(DebugUtil.debugDump(modifications)); assertEquals("Unexpected number of midifications", 1, modifications.size()); PrismAsserts.assertPropertyReplace( modifications, ItemPath.create(UserType.F_ASSIGNMENT, 1L, AssignmentType.F_DESCRIPTION), "chamalalia patlama paprtala"); ItemDeltaCollectionsUtil.checkConsistence(modifications); }
@Test(enabled = false) // normalization no longer removes empty values public void testEqualsBrokenAssignmentActivation() throws Exception { final String TEST_NAME="testEqualsBrokenAssignmentActivation"; displayTestTitle(TEST_NAME); // GIVEN PrismObjectDefinition<UserType> userDef = PrismInternalTestUtil.getUserTypeDefinition(); PrismContainerDefinition<AssignmentType> assignmentDef = userDef.findContainerDefinition(UserType.F_ASSIGNMENT); PrismContainer<AssignmentType> goodAssignment = assignmentDef.instantiate(UserType.F_ASSIGNMENT); PrismContainer<AssignmentType> brokenAssignment = goodAssignment.clone(); assertEquals("Not equals after clone", goodAssignment, brokenAssignment); // lets break one of these ... PrismContainerValue<AssignmentType> emptyValue = getPrismContext().itemFactory().createContainerValue(); brokenAssignment.add(emptyValue); // WHEN assertFalse("Unexpected equals", goodAssignment.equals(brokenAssignment)); brokenAssignment.normalize(); assertEquals("Not equals after normalize(bad)", goodAssignment, brokenAssignment); goodAssignment.normalize(); assertEquals("Not equals after normalize(good)", goodAssignment, brokenAssignment); } }
@Test public void testPropertyUserSimpleDiffMultiAddStatic() throws Exception { System.out.println("\n\n===[ testPropertyUserSimpleDiffMultiAddStatic ]===\n"); // GIVEN PrismObjectDefinition<UserType> userDef = getUserTypeDefinition(); PrismObject<UserType> user1 = userDef.instantiate(); user1.setOid(USER_JACK_OID); PrismProperty<String> additionalNamesProp1 = user1.findOrCreateProperty(UserType.F_ADDITIONAL_NAMES); additionalNamesProp1.addRealValue("foo"); additionalNamesProp1.addRealValue("bar"); PrismObject<UserType> user2 = userDef.instantiate(); user2.setOid(USER_JACK_OID); PrismProperty<String> additionalNamesProp2 = user2.findOrCreateProperty(UserType.F_ADDITIONAL_NAMES); additionalNamesProp2.addRealValue("foo"); additionalNamesProp2.addRealValue("bar"); additionalNamesProp2.addRealValue("baz"); // WHEN PropertyDelta<String> delta = ItemUtil.diff(additionalNamesProp1, additionalNamesProp2); // THEN assertNotNull(delta); System.out.println(delta.debugDump()); PrismAsserts.assertAdd(delta, "baz"); delta.checkConsistence(); }
@Test public void testUserSimpleDiffMultiNoChange() throws Exception { System.out.println("\n\n===[ testUserSimpleDiffMultiNoChange ]===\n"); // GIVEN PrismObjectDefinition<UserType> userDef = getUserTypeDefinition(); PrismObject<UserType> user1 = userDef.instantiate(); user1.setOid(USER_JACK_OID); PrismProperty<String> anamesProp1 = user1.findOrCreateProperty(UserType.F_ADDITIONAL_NAMES); anamesProp1.addRealValue("foo"); anamesProp1.addRealValue("bar"); PrismObject<UserType> user2 = userDef.instantiate(); user2.setOid(USER_JACK_OID); PrismProperty<String> anamesProp2 = user2.findOrCreateProperty(UserType.F_ADDITIONAL_NAMES); anamesProp2.addRealValue("foo"); anamesProp2.addRealValue("bar"); // WHEN ObjectDelta<UserType> delta = user1.diff(user2); // THEN assertNotNull(delta); assertEquals("Unexpected number of midifications", 0, delta.getModifications().size()); assertEquals("Wrong OID", USER_JACK_OID, delta.getOid()); delta.checkConsistence(); }
@Test public void testUserSimpleDiffMultiAdd() throws Exception { System.out.println("\n\n===[ testUserSimpleDiffMulti ]===\n"); // GIVEN PrismObjectDefinition<UserType> userDef = getUserTypeDefinition(); PrismObject<UserType> user1 = userDef.instantiate(); user1.setOid(USER_JACK_OID); PrismProperty<String> anamesProp1 = user1.findOrCreateProperty(UserType.F_ADDITIONAL_NAMES); anamesProp1.addRealValue("foo"); anamesProp1.addRealValue("bar"); PrismObject<UserType> user2 = userDef.instantiate(); user2.setOid(USER_JACK_OID); PrismProperty<String> anamesProp2 = user2.findOrCreateProperty(UserType.F_ADDITIONAL_NAMES); anamesProp2.addRealValue("foo"); anamesProp2.addRealValue("bar"); anamesProp2.addRealValue("baz"); // WHEN ObjectDelta<UserType> delta = user1.diff(user2); // THEN assertNotNull(delta); System.out.println(delta.debugDump()); assertEquals("Unexpected number of midifications", 1, delta.getModifications().size()); PrismAsserts.assertPropertyAdd(delta, UserType.F_ADDITIONAL_NAMES, "baz"); assertEquals("Wrong OID", USER_JACK_OID, delta.getOid()); delta.checkConsistence(); }