public static void assertModifications(String message, ObjectDelta<?> objectDelta, int expectedNumberOfModifications) { assertIsModify(objectDelta); assert objectDelta.getModifications().size() == expectedNumberOfModifications : (message == null ? "" : (message + ": ")) + "Wrong number of modifications in object delta " + objectDelta + ". Expected "+expectedNumberOfModifications+", was "+objectDelta.getModifications().size(); }
public static <O extends ObjectType> void setDeltaOldValue(LensElementContext<O> ctx, ObjectDelta<O> objectDelta) { if (objectDelta == null) { return; } if (!objectDelta.isModify()) { return; } for (ItemDelta<?, ?> modification: objectDelta.getModifications()) { setDeltaOldValue(ctx, modification); } }
protected boolean deltaContainsOtherPathsThan(ObjectDelta<? extends ObjectType> delta, List<ItemPath> paths) { for (ItemDelta itemDelta : delta.getModifications()) { if (!NotificationFunctionsImpl.isAmongHiddenPaths(itemDelta.getPath(), paths)) { return true; } } return false; }
public <O extends ObjectType> boolean containsItem(ObjectDelta<O> delta, ItemPath itemPath) { if (delta.getChangeType() == ChangeType.ADD) { return containsItem(delta.getObjectToAdd(), itemPath); } else if (delta.getChangeType() == ChangeType.MODIFY) { return containsItemInModifications(delta.getModifications(), itemPath); } else { return false; } }
@Test public void test120DuplicatePhotoAddOther() throws Exception { OperationResult result = new OperationResult(OrgPhotoTest.class.getName() + ".test120DuplicatePhotoAddOther"); // because photo is single-value, the ADD operation will simply replace the old value ObjectDelta delta = parseDelta(orgOid, T106_ADD_PHOTO_BY_ADD_OTHER); repositoryService.modifyObject(OrgType.class, orgOid, delta.getModifications(), result); checkObject(orgOid, ORG_FILE, result, delta); }
@Test public void test110DuplicatePhotoAddSame() throws Exception { OperationResult result = new OperationResult(UserPhotoTest.class.getName() + ".test110DuplicatePhotoAddSame"); ObjectDelta delta = parseDelta(userOid, T005_ADD_PHOTO_BY_ADD); // adding the same value again repositoryService.modifyObject(UserType.class, userOid, delta.getModifications(), result); checkObject(userOid, USER_FILE, result); // no need to mention delta here, because object now should be equal to USER_FILE checkObjectNoPhoto(userOid, USER_FILE, result); }
@Test public void test100AddPhotoByAdd() throws Exception { OperationResult result = new OperationResult(OrgPhotoTest.class.getName() + ".test100AddPhotoByAdd"); ObjectDelta delta = parseDelta(orgOid, T105_ADD_PHOTO_BY_ADD); repositoryService.modifyObject(OrgType.class, orgOid, delta.getModifications(), result); checkObject(orgOid, ORG_FILE, result); // no need to mention delta here, because object now should be equal to ORG_FILE checkObjectNoPhoto(orgOid, ORG_FILE, result); }
@Override public void assertsAfterClockworkRun(Task rootTask, List<Task> wfSubtasks, OperationResult result) throws Exception { ModelContext taskModelContext = wfTaskUtil.getModelContext(rootTask, result); assertEquals("There are modifications left in primary focus delta", 0, taskModelContext.getFocusContext().getPrimaryDelta().getModifications().size()); }
@Override public void assertsAfterClockworkRun(Task rootTask, List<Task> wfSubtasks, OperationResult result) throws Exception { ModelContext taskModelContext = wfTaskUtil.getModelContext(rootTask, result); assertEquals("There are modifications left in primary focus delta", 0, taskModelContext.getFocusContext().getPrimaryDelta().getModifications().size()); assertNotAssignedResource(USER_JACK_OID, RESOURCE_DUMMY_OID, rootTask, result); }
@Override public void assertsAfterClockworkRun(Task rootTask, List<Task> wfSubtasks, OperationResult result) throws Exception { ModelContext taskModelContext = wfTaskUtil.getModelContext(rootTask, result); assertEquals("There are modifications left in primary focus delta", 0, taskModelContext.getFocusContext().getPrimaryDelta().getModifications().size()); //assertNoObject(UserType.class, USER_ELISABETH_OID, task, result); }
@Override public void assertsAfterClockworkRun(Task rootTask, List<Task> wfSubtasks, OperationResult result) throws Exception { ModelContext taskModelContext = wfTaskUtil.getModelContext(rootTask, result); assertEquals("There are modifications left in primary focus delta", 0, taskModelContext.getFocusContext().getPrimaryDelta().getModifications().size()); }
@Override public void assertsAfterClockworkRun(Task rootTask, List<Task> wfSubtasks, OperationResult result) throws Exception { ModelContext taskModelContext = wfTaskUtil.getModelContext(rootTask, result); assertEquals("There are modifications left in primary focus delta", 0, taskModelContext.getFocusContext().getPrimaryDelta().getModifications().size()); }
@Test public void test130RemoveNonExistingPhotoByDelete() throws Exception { OperationResult result = new OperationResult(OrgPhotoTest.class.getName() + ".test130RemoveNonExistingPhotoByDelete"); ObjectDelta delta1 = parseDelta(orgOid, T106_ADD_PHOTO_BY_ADD_OTHER); ObjectDelta delta2 = parseDelta(orgOid, T107_REMOVE_PHOTO_BY_DELETE); repositoryService.modifyObject(OrgType.class, orgOid, delta2.getModifications(), result); // should not remove the photo because the value is different checkObject(orgOid, ORG_FILE, result, delta1); checkObject(orgOid, ORG_FILE, result, delta1, delta2); // should be equivalent }
@Test public void test130RemoveNonExistingPhotoByDelete() throws Exception { OperationResult result = new OperationResult(UserPhotoTest.class.getName() + ".test130RemoveNonExistingPhotoByDelete"); ObjectDelta delta1 = parseDelta(userOid, T006_ADD_PHOTO_BY_ADD_OTHER); ObjectDelta delta2 = parseDelta(userOid, T007_REMOVE_PHOTO_BY_DELETE); repositoryService.modifyObject(UserType.class, userOid, delta2.getModifications(), result); // should not remove the photo because the value is different checkObject(userOid, USER_FILE, result, delta1); checkObject(userOid, USER_FILE, result, delta1, delta2); // should be equivalent }
@Override public void assertsAfterClockworkRun(Task rootTask, List<Task> subtasks, OperationResult result) throws Exception { ModelContext taskModelContext = wfTaskUtil.getModelContext(rootTask, result); assertEquals("There are modifications left in primary focus delta", 0, taskModelContext.getFocusContext().getPrimaryDelta().getModifications().size()); assertNotAssignedRole(USER_JACK_OID, ROLE_R1_OID, rootTask, result); assertWfContextAfterClockworkRun(rootTask, subtasks, result, enablePolicyRuleBasedAspect ? "Assigning role \"Role1\" to user \"jack\"" : "Assigning Role1 to jack"); }
@Test public void test050ChangePhoto() throws Exception { OperationResult result = new OperationResult(OrgPhotoTest.class.getName() + ".test050ReplacePhoto"); ObjectDelta delta1 = parseDelta(orgOid, T101_ADD_ORG_TYPE); ObjectDelta delta2 = parseDelta(orgOid, T102_REMOVE_PHOTO); ObjectDelta delta3 = parseDelta(orgOid, T103_RE_ADD_PHOTO); ObjectDelta delta4 = parseDelta(orgOid, T104_CHANGE_PHOTO); repositoryService.modifyObject(OrgType.class, orgOid, delta4.getModifications(), result); checkObject(orgOid, ORG_FILE, result, delta1, delta2, delta3, delta4); }
private void assignRoleRaw(String userOid, String roleOid) throws SchemaException, CommunicationException, ObjectAlreadyExistsException, ExpressionEvaluationException, PolicyViolationException, SecurityViolationException, ConfigurationException, ObjectNotFoundException { ObjectDelta<UserType> userDelta = createAssignmentUserDelta(userOid, roleOid, RoleType.COMPLEX_TYPE, null, null, null, true); Collection<ObjectDelta<? extends ObjectType>> deltas = MiscSchemaUtil.createCollection(userDelta); repositoryService.modifyObject(UserType.class, userOid, userDelta.getModifications(), new OperationResult("dummy")); }
@Override public void assertsAfterClockworkRun(Task rootTask, List<Task> wfSubtasks, OperationResult result) throws Exception { ModelContext taskModelContext = wfTaskUtil.getModelContext(rootTask, result); assertEquals("There are modifications left in primary focus delta", 0, taskModelContext.getFocusContext().getPrimaryDelta().getModifications().size()); UserType jack = getUser(USER_JACK_OID).asObjectable(); checkNoAssignmentValidity(jack); }
private <F extends FocusType> void unlink(LensContext<F> context, FocusType persona, OperationResult result) throws ObjectNotFoundException, SchemaException, ObjectAlreadyExistsException { ObjectDelta<F> delta = context.getFocusContext().getObjectNew().createModifyDelta(); PrismReferenceValue refValue = prismContext.itemFactory().createReferenceValue(); refValue.setOid(persona.getOid()); refValue.setTargetType(persona.asPrismObject().getDefinition().getTypeName()); delta.addModificationDeleteReference(FocusType.F_PERSONA_REF, refValue); repositoryService.modifyObject(delta.getObjectTypeClass(), delta.getOid(), delta.getModifications(), result); }
@Test public void testReplaceModelOperationContext() throws Exception { PrismObject prismObject = PrismTestUtil.parseObject(new File(TEST_DIR, "task-modelOperationContext-before.xml")); ObjectDelta delta = getPrismContext().deltaFactory().object().createEmptyModifyDelta(TaskType.class, prismObject.getOid() ); delta.addModificationReplaceContainer(TaskType.F_MODEL_OPERATION_CONTEXT); PrismObject changed = prismObject.clone(); ItemDeltaCollectionsUtil.applyTo(delta.getModifications(), changed); Collection<? extends ItemDelta> processedModifications = prismObject.diffModifications(changed, EquivalenceStrategy.LITERAL_IGNORE_METADATA); ItemDeltaCollectionsUtil.applyTo(processedModifications, prismObject); assertNull(prismObject.findContainer(TaskType.F_MODEL_OPERATION_CONTEXT)); }