@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); }
referenceDelta.addValueToAdd(newValue); modifications.add(referenceDelta);
ObjectReferenceType objectRef = null; ReferenceDelta delta = prismContext.deltaFactory().reference().create(def); delta.addValueToAdd(itemFactory().createReferenceValue("1", ResourceType.COMPLEX_TYPE)); modifications.add(delta); repositoryService.modifyObject(TaskType.class, taskOid, modifications, getModifyOptions(), result); delta = prismContext.deltaFactory().reference().create(def); delta.addValueToDelete(itemFactory().createReferenceValue("1", ResourceType.COMPLEX_TYPE)); delta.addValueToAdd(itemFactory().createReferenceValue("2", ResourceType.COMPLEX_TYPE)); modifications.add(delta); repositoryService.modifyObject(TaskType.class, taskOid, modifications, getModifyOptions(), result); delta = prismContext.deltaFactory().reference().create(def); delta.addValueToDelete(itemFactory().createReferenceValue("2", ResourceType.COMPLEX_TYPE)); delta.addValueToAdd(itemFactory().createReferenceValue("1", ResourceType.COMPLEX_TYPE)); modifications.add(delta); repositoryService.modifyObject(TaskType.class, taskOid, modifications, getModifyOptions(), result);
OBJECT_REFERENCE_TYPE_QNAME, PrismTestUtil.getPrismContext()); ReferenceDelta delta2 = new ReferenceDeltaImpl(referenceDefinition, PrismTestUtil.getPrismContext()); delta2.addValueToAdd(new PrismReferenceValueImpl("oid1")); assertPath(delta2, UserType.F_PARENT_ORG_REF);