public AssignmentType id(Long value) { setId(value); return this; }
private AssignmentType toDelete(AssignmentType assignment, boolean byId) { if (assignment == null) { return null; } if (!byId) { return assignment.clone(); } else { AssignmentType rv = new AssignmentType(prismContext); rv.setId(assignment.getId()); return rv; } }
protected void modifyRoleDeleteInducement(String roleOid, long inducementId, boolean reconcileAffected, ModelExecuteOptions defaultOptions, Task task) throws SchemaException, ObjectAlreadyExistsException, ObjectNotFoundException, ExpressionEvaluationException, CommunicationException, ConfigurationException, PolicyViolationException, SecurityViolationException { if (task == null) { task = createTask(AbstractModelIntegrationTest.class.getName() + ".modifyRoleDeleteInducement"); } OperationResult result = task.getResult(); AssignmentType inducement = new AssignmentType(); inducement.setId(inducementId); ObjectDelta<RoleType> roleDelta = prismContext.deltaFactory().object() .createModificationDeleteContainer(RoleType.class, roleOid, RoleType.F_INDUCEMENT, inducement); ModelExecuteOptions options = nullToEmpty(defaultOptions); options.setReconcileAffected(reconcileAffected); executeChanges(roleDelta, options, task, result); result.computeStatus(); if (reconcileAffected) { TestUtil.assertInProgressOrSuccess(result); } else { TestUtil.assertSuccess(result); } }
@Test public void test230UserContainerDelete() throws Exception { final String TEST_NAME = "test230UserContainerDelete"; Task task = createTask(TEST_NAME); AssignmentType ass1 = new AssignmentType(prismContext); ass1.setId(1L); AssignmentType ass2 = new AssignmentType(prismContext); ass2.setId(99999L); ObjectDelta<?> delta = deltaFor(UserType.class) .item(UserType.F_NAME).replace("admin") .item(UserType.F_ASSIGNMENT).delete(ass1, ass2) .asObjectDelta(USER_ADMINISTRATOR_OID); /// WHEN displayWhen(TEST_NAME); final Scene scene = visualizer.visualizeDelta((ObjectDelta<? extends ObjectType>) delta, task, task.getResult()); // THEN displayThen(TEST_NAME); display("scene", scene); // TODO some asserts }
@Test public void addUserWithAssignmentExtension() throws Exception { LOGGER.info("===[ addUserWithAssignmentExtension ]==="); File file = new File(FOLDER_BASIC, "user-assignment-extension.xml"); List<PrismObject<? extends Objectable>> elements = prismContext.parserFor(file).parseObjects(); OperationResult result = new OperationResult("ADD"); String oid = repositoryService.addObject((PrismObject) elements.get(0), null, result); PrismObject<UserType> fileUser = (PrismObject<UserType>) prismContext.parserFor(file).parseObjects().get(0); long id = 1; for (AssignmentType assignment : fileUser.asObjectable().getAssignment()) { assignment.setId(id); id++; } PrismObject<UserType> repoUser = repositoryService.getObject(UserType.class, oid, null, result); ObjectDelta<UserType> delta = fileUser.diff(repoUser); AssertJUnit.assertNotNull(delta); LOGGER.info("delta\n{}", delta.debugDump(3)); assertTrue(delta.isEmpty()); }
@Test public void testDeleteInducementValidIdEmptyValueApplyToObjectStatic() throws Exception { final String TEST_NAME = "testDeleteInducementValidIdEmptyValueApplyToObjectStatic"; displayTestTile(TEST_NAME); // GIVEN PrismObject<RoleType> role = PrismTestUtil.parseObject(ROLE_CONSTRUCTION_FILE); System.out.println("Role before delta application:"); System.out.println(role.debugDump()); //Delta AssignmentType inducement = new AssignmentType(); inducement.setId(ROLE_CONSTRUCTION_INDUCEMENT_ID); ObjectDelta<RoleType> roleDelta = getPrismContext().deltaFactory().object() .createModificationDeleteContainer(RoleType.class, ROLE_CONSTRUCTION_OID, RoleType.F_INDUCEMENT, inducement); // WHEN ItemDeltaCollectionsUtil.applyTo(roleDelta.getModifications(), role); // THEN System.out.println("Role after delta application:"); System.out.println(role.debugDump()); assertEquals("Wrong OID", ROLE_CONSTRUCTION_OID, role.getOid()); PrismAsserts.assertPropertyValue(role, UserType.F_NAME, PrismTestUtil.createPolyString("Construction")); PrismContainer<AssignmentType> assignment = role.findContainer(RoleType.F_INDUCEMENT); assertNull("Unexpected inducement", assignment); }
@Test public void testDeleteInducementValidIdEmptyValueApplyToObject() throws Exception { final String TEST_NAME = "testDeleteInducementValidIdEmptyValueApplyToObject"; displayTestTile(TEST_NAME); // GIVEN PrismObject<RoleType> role = PrismTestUtil.parseObject(ROLE_CONSTRUCTION_FILE); //Delta AssignmentType inducement = new AssignmentType(); inducement.setId(ROLE_CONSTRUCTION_INDUCEMENT_ID); ObjectDelta<RoleType> roleDelta = getPrismContext().deltaFactory().object() .createModificationDeleteContainer(RoleType.class, ROLE_CONSTRUCTION_OID, RoleType.F_INDUCEMENT, inducement); // WHEN roleDelta.applyTo(role); // THEN System.out.println("Role after delta application:"); System.out.println(role.debugDump()); assertEquals("Wrong OID", ROLE_CONSTRUCTION_OID, role.getOid()); PrismAsserts.assertPropertyValue(role, UserType.F_NAME, PrismTestUtil.createPolyString("Construction")); PrismContainer<AssignmentType> assignment = role.findContainer(RoleType.F_INDUCEMENT); assertNull("Unexpected inducement", assignment); }
Long origAssingmentId = roleBefore.asObjectable().getAssignment().iterator().next().getId(); assertNotNull(origAssingmentId); assignmentToDelete.setId(origAssingmentId);
@Test public void testDeleteInducementValidIdSameValueApplyToObject() throws Exception { final String TEST_NAME = "testDeleteInducementValidIdSameValueApplyToObject"; displayTestTile(TEST_NAME); // GIVEN PrismObject<RoleType> role = PrismTestUtil.parseObject(ROLE_CONSTRUCTION_FILE); //Delta ConstructionType construction = new ConstructionType(); ObjectReferenceType resourceRef = new ObjectReferenceType(); resourceRef.setOid(ROLE_CONSTRUCTION_RESOURCE_OID); construction.setResourceRef(resourceRef); AssignmentType inducement = new AssignmentType(); inducement.setConstruction(construction); inducement.setId(ROLE_CONSTRUCTION_INDUCEMENT_ID); ObjectDelta<RoleType> roleDelta = getPrismContext().deltaFactory().object() .createModificationDeleteContainer(RoleType.class, ROLE_CONSTRUCTION_OID, RoleType.F_INDUCEMENT, inducement); // WHEN roleDelta.applyTo(role); // THEN System.out.println("Role after delta application:"); System.out.println(role.debugDump()); assertEquals("Wrong OID", ROLE_CONSTRUCTION_OID, role.getOid()); PrismAsserts.assertPropertyValue(role, UserType.F_NAME, PrismTestUtil.createPolyString("Construction")); PrismContainer<AssignmentType> assignment = role.findContainer(RoleType.F_INDUCEMENT); assertNull("Unexpected inducement", assignment); }
ass.setId(1L); delta.addModificationDeleteContainer(UserType.F_ASSIGNMENT, ass);
@Test public void test230ChuckAssign2a2b() throws Exception { TestCtx t = createContext(this, "test230ChuckAssign2a2b"); // GIVEN AssignmentType assignment2a = createAssignmentTo(roleATest2aOid, ObjectTypes.ROLE, prismContext); assignment2a.setId(100L); AssignmentType assignment2b = createAssignmentTo(roleATest2bOid, ObjectTypes.ROLE, prismContext); assignment2b.setId(101L); UserType chuck = prismContext.createObjectable(UserType.class) .name("chuck") .assignment(assignment2a) .assignment(assignment2b); // WHEN t.displayWhen(); addObject(chuck.asPrismObject(), t.task, t.result); // THEN t.displayThen(); chuck = getUser(chuck.getOid()).asObjectable(); display("chuck", chuck); t.result.computeStatus(); TestUtil.assertSuccess(t.result); assertAssignedRole(chuck.asPrismObject(), roleATest2aOid); assertAssignedRole(chuck.asPrismObject(), roleATest2bOid); assertEquals("Wrong # of assignments", 2, chuck.getAssignment().size()); display("Audit", dummyAuditService); dummyAuditService.assertExecutionRecords(2); // sourceRef.oid is null on the first iteration (object OID is unknown before actual creation in repo) for (AssignmentType assignment : chuck.getAssignment()) { assertExclusionViolationState(assignment); } }
@Test public void test320CreateWrongRoleKnownOid() throws Exception { TestCtx t = createContext(this, "test320CreateWrongRoleKnownOid"); // GIVEN AssignmentType assignmentCommon = createAssignmentTo(metaroleCommonRulesOid, ObjectTypes.ROLE, prismContext); assignmentCommon.setId(300L); RoleType wrong3 = prismContext.createObjectable(RoleType.class) .name("wrong-3") .oid("df6c6bdc-f938-4afc-98f3-10d18ceda274") .description("wrong") .assignment(assignmentCommon); // WHEN t.displayWhen(); addObject(wrong3.asPrismObject(), t.task, t.result); // THEN t.displayThen(); wrong3 = getRole(wrong3.getOid()).asObjectable(); display("role 'wrong-3'", wrong3); t.result.computeStatus(); TestUtil.assertSuccess(t.result); assertEquals("Wrong policy situations for role", Collections.singletonList(WRONG_URI), wrong3.getPolicySituation()); display("Audit", dummyAuditService); dummyAuditService.assertExecutionRecords(1); // no extra policy state update }
@Test public void test539JackUnAssignRoleCleric() throws Exception { final String TEST_NAME = "test539JackUnAssignRoleCleric"; displayTestTitle(TEST_NAME); assumeAssignmentPolicy(AssignmentPolicyEnforcementType.RELATIVE); Task task = createTask(TEST_NAME); OperationResult result = task.getResult(); PrismObject<UserType> user = getObject(UserType.class, USER_JACK_OID); AssignmentType assignmentType = new AssignmentType(); assignmentType.setId(user.asObjectable().getAssignment().get(0).getId()); ObjectDelta<UserType> assignmentDelta = prismContext.deltaFactory().object().createModificationDeleteContainer( UserType.class, USER_JACK_OID, UserType.F_ASSIGNMENT, assignmentType); // WHEN displayWhen(TEST_NAME); executeChanges(assignmentDelta, getDefaultOptions(), task, result); // THEN displayThen(TEST_NAME); result.computeStatus(); TestUtil.assertSuccess(result); PrismObject<UserType> userJack = getUser(USER_JACK_OID); display("User after", userJack); assertAssignedNoRole(userJack); assertRoleMembershipRef(userJack); assertDelegatedRef(userJack); assertNoLinkedAccount(userJack); assertNoDummyAccount(ACCOUNT_JACK_DUMMY_USERNAME); }
@Test public void test250EveAssign2b() throws Exception { TestCtx t = createContext(this, "test220AliceAssign2a2b"); // WHEN t.displayWhen(); AssignmentType assignment2b = createAssignmentTo(roleATest2bOid, ObjectTypes.ROLE, prismContext); assignment2b.setId(200L); ObjectDelta<UserType> delta = prismContext.deltaFor(UserType.class) .item(UserType.F_ASSIGNMENT) .add(assignment2b) .asObjectDeltaCast(userEveOid); executeChangesAssertSuccess(delta, null, t.task, t.result); // THEN t.displayThen(); UserType eve = getUser(userEveOid).asObjectable(); display("alice", eve); t.result.computeStatus(); TestUtil.assertSuccess(t.result); assertAssignedRole(eve.asPrismObject(), roleATest2aOid); assertAssignedRole(eve.asPrismObject(), roleATest2bOid); assertEquals("Wrong # of assignments", 2, eve.getAssignment().size()); display("Audit", dummyAuditService); dummyAuditService.assertExecutionRecords(1); for (AssignmentType assignment : eve.getAssignment()) { assertExclusionViolationState(assignment); } }
in.setId(null);