private void addAssignmentCreationApprovalMetadata(AssignmentType assignment, Collection<ObjectReferenceType> approvedBy, Collection<String> comments) { MetadataType metadata = assignment.getMetadata(); if (metadata == null) { assignment.setMetadata(metadata = new MetadataType(prismContext)); } metadata.getCreateApproverRef().clear(); metadata.getCreateApproverRef().addAll(CloneUtil.cloneCollectionMembers(approvedBy)); metadata.getCreateApprovalComment().clear(); metadata.getCreateApprovalComment().addAll(comments); }
protected <O extends ObjectType> void assertCreateMetadata(AssignmentType assignmentType, XMLGregorianCalendar start, XMLGregorianCalendar end) { MetadataType metadataType = assignmentType.getMetadata(); PrismObject<UserType> defaultActor = getDefaultActor(); assertMetadata(assignmentType.toString(), metadataType, true, true, start, end, defaultActor==null?null:defaultActor.getOid(), DEFAULT_CHANNEL); }
@Test public void test210CheckAfterClose() throws Exception { final String TEST_NAME = "test210CheckAfterClose"; TestUtil.displayTestTitle(this, TEST_NAME); login(userAdministrator.asPrismObject()); // GIVEN Task task = taskManager.createTaskInstance(TestCertificationBasic.class.getName() + "." + TEST_NAME); task.setOwner(userAdministrator.asPrismObject()); OperationResult result = task.getResult(); // WHEN waitForCampaignTasks(campaignOid, 20000, result); // THEN userJack = getUser(USER_JACK_OID).asObjectable(); display("jack", userJack); assertCertificationMetadata(findAssignmentByTargetRequired(userJack.asPrismObject(), roleATest2bOid).getMetadata(), SchemaConstants.MODEL_CERTIFICATION_OUTCOME_ACCEPT, singleton(USER_JACK_OID), emptySet()); assertCertificationMetadata(findAssignmentByTargetRequired(userJack.asPrismObject(), roleATest2cOid).getMetadata(), SchemaConstants.MODEL_CERTIFICATION_OUTCOME_ACCEPT, singleton(USER_JACK_OID), emptySet()); assertCertificationMetadata(findAssignmentByTargetRequired(userJack.asPrismObject(), roleATest3aOid).getMetadata(), SchemaConstants.MODEL_CERTIFICATION_OUTCOME_ACCEPT, singleton(USER_JACK_OID), singleton("jack: OK")); assertCertificationMetadata(findAssignmentByTargetRequired(userJack.asPrismObject(), roleATest3bOid).getMetadata(), SchemaConstants.MODEL_CERTIFICATION_OUTCOME_ACCEPT, singleton(USER_JACK_OID), singleton("jack: dunno")); }
@Test public void test499CheckAfterClose() throws Exception { final String TEST_NAME = "test920CheckAfterClose"; TestUtil.displayTestTitle(this, TEST_NAME); login(userAdministrator.asPrismObject()); // GIVEN Task task = taskManager.createTaskInstance(TestCertificationBasic.class.getName() + "." + TEST_NAME); task.setOwner(userAdministrator.asPrismObject()); OperationResult result = task.getResult(); // WHEN waitForCampaignTasks(campaignOid, 20000, result); // THEN userAdministrator = getUser(USER_ADMINISTRATOR_OID).asObjectable(); display("administrator", userAdministrator); AssignmentType assignment = findAssignmentByTargetRequired(userAdministrator.asPrismObject(), ROLE_COO_OID); assertCertificationMetadata(assignment.getMetadata(), SchemaConstants.MODEL_CERTIFICATION_OUTCOME_ACCEPT, new HashSet<>(asList(USER_ADMINISTRATOR_OID, USER_ELAINE_OID, USER_CHEESE_OID)), singleton("administrator: ok")); }
@Test public void test210CheckAfterClose() throws Exception { final String TEST_NAME = "test210CheckAfterClose"; TestUtil.displayTestTitle(this, TEST_NAME); login(userAdministrator.asPrismObject()); // GIVEN Task task = taskManager.createTaskInstance(TestCertificationBasic.class.getName() + "." + TEST_NAME); task.setOwner(userAdministrator.asPrismObject()); OperationResult result = task.getResult(); // WHEN waitForCampaignTasks(campaignOid, 20000, result); // THEN userAdministrator = getUser(USER_ADMINISTRATOR_OID).asObjectable(); display("administrator", userAdministrator); AssignmentType assignment = findAssignmentByTargetRequired(userAdministrator.asPrismObject(), ROLE_SUPERUSER_OID); assertCertificationMetadata(assignment.getMetadata(), SchemaConstants.MODEL_CERTIFICATION_OUTCOME_ACCEPT, singleton(USER_ADMINISTRATOR_OID), singleton("administrator: no comment")); }
@Test public void test320CheckAfterClose() throws Exception { final String TEST_NAME = "test320CheckAfterClose"; TestUtil.displayTestTitle(this, TEST_NAME); login(userAdministrator.asPrismObject()); // GIVEN Task task = taskManager.createTaskInstance(TestCertificationBasic.class.getName() + "." + TEST_NAME); task.setOwner(userAdministrator.asPrismObject()); OperationResult result = task.getResult(); // WHEN waitForCampaignTasks(campaignOid, 20000, result); // THEN roleCoo = getRole(ROLE_COO_OID).asObjectable(); display("COO", roleCoo); AssignmentType inducement = findInducementByTarget(ROLE_COO_OID, ROLE_SUPERUSER_OID); assertCertificationMetadata(inducement.getMetadata(), SchemaConstants.MODEL_CERTIFICATION_OUTCOME_ACCEPT, singleton(USER_ADMINISTRATOR_OID), singleton("administrator: I'm so procrastinative...")); } }
private void assertAssignmentMetadata(PrismObject<? extends FocusType> object, String targetOid, Set<String> createApproverOids, Set<String> createApprovalComments, Set<String> modifyApproverOids, Set<String> modifyApprovalComments) { AssignmentType assignment = findAssignmentByTargetRequired(object, targetOid); MetadataType metadata = assignment.getMetadata(); PrismAsserts.assertReferenceOids("Wrong create approvers", createApproverOids, metadata.getCreateApproverRef()); PrismAsserts.assertEqualsCollectionUnordered("Wrong create comments", createApprovalComments, metadata.getCreateApprovalComment()); PrismAsserts.assertReferenceOids("Wrong modify approvers", modifyApproverOids, metadata.getModifyApproverRef()); PrismAsserts.assertEqualsCollectionUnordered("Wrong modify comments", modifyApprovalComments, metadata.getModifyApprovalComment()); }
private <F extends FocusType> void applyAssignmentValueMetadataAdd(LensContext<F> context, PrismContainerValue<AssignmentType> assignmentContainerValue, String desc, XMLGregorianCalendar now, Task task, OperationResult result) throws SchemaException { AssignmentType assignmentType = assignmentContainerValue.asContainerable(); MetadataType metadataType = assignmentType.getMetadata(); if (metadataType == null) { metadataType = new MetadataType(); assignmentType.setMetadata(metadataType); } transplantRequestMetadata(context, metadataType); // This applies the effective status only to assignments that are completely new (whole container is added/replaced) // The effectiveStatus of existing assignments is processed in FocusProcessor.processAssignmentActivation() // We cannot process that here. Because this code is not even triggered when there is no delta. So recompute will not work. ActivationType activationType = assignmentType.getActivation(); ActivationStatusType effectiveStatus = activationComputer.getEffectiveStatus(assignmentType.getLifecycleState(), activationType, null); if (activationType == null) { activationType = new ActivationType(); assignmentType.setActivation(activationType); } activationType.setEffectiveStatus(effectiveStatus); applyCreateMetadata(context, metadataType, now, task); if (LOGGER.isTraceEnabled()) { LOGGER.trace("Adding operational data {} to assignment cval ({}):\nMETADATA:\n{}\nACTIVATION:\n{}", metadataType, desc, assignmentContainerValue.debugDump(1), activationType.asPrismContainerValue().debugDump(1)); } }
assertEquals("Wrong originMappingName", "pirate-assignment", pirateAssignment.getMetadata().getOriginMappingName()); assertAssignments(userJack, 1);
assertEquals("Wrong originMappingName", "buccaneer-assignment", buccaneerAssignment.getMetadata().getOriginMappingName()); assertAssignments(userJack, 1);
/** * Setting employee type to useless. This should cause switch to different user template. */ @Test public void test970ModifyUserGuybrushEmployeeTypeUseless() throws Exception { final String TEST_NAME = "test970ModifyUserGuybrushEmployeeTypeUseless"; displayTestTitle(TEST_NAME); // GIVEN Task task = createTask(TEST_NAME); OperationResult result = task.getResult(); PrismObject<UserType> userBefore = getUser(USER_GUYBRUSH_OID); display("User before", userBefore); assertAssignedNoRole(userBefore); // WHEN displayWhen(TEST_NAME); modifyUserReplace(USER_GUYBRUSH_OID, UserType.F_SUBTYPE, task, result, SUBTYPE_USELESS); // THEN displayThen(TEST_NAME); assertSuccess(result); PrismObject<UserType> userAfter = modelService.getObject(UserType.class, USER_GUYBRUSH_OID, null, task, result); display("User after", userAfter); AssignmentType uselessAssignment = assertAssignedRole(userAfter, ROLE_USELESS_OID); assertEquals("Wrong originMappingName", "assignment-for-useless-role", uselessAssignment.getMetadata().getOriginMappingName()); }
AssignmentType pirateAssignment = assertAssignedRole(userJack, ROLE_PIRATE_OID); assertEquals("Wrong originMappingName", "assignment-from-subtype", pirateAssignment.getMetadata().getOriginMappingName()); assertAssignments(userJack, 2);
/** * Setting honorificPrefix satisfies the condition to assign * the Thief role. */ @Test public void test172ModifyUserGuybrushHonorificPrefix() throws Exception { final String TEST_NAME = "test172ModifyUserGuybrushHonorificPrefix"; displayTestTitle(TEST_NAME); // GIVEN Task task = createTask(TEST_NAME); OperationResult result = task.getResult(); PrismObject<UserType> userBefore = getUser(USER_GUYBRUSH_OID); display("User before", userBefore); assertAssignedNoRole(userBefore); // WHEN displayWhen(TEST_NAME); modifyUserReplace(USER_GUYBRUSH_OID, UserType.F_HONORIFIC_PREFIX, task, result, PrismTestUtil.createPolyString("Thf.")); // THEN displayThen(TEST_NAME); assertSuccess(result); PrismObject<UserType> userAfter = modelService.getObject(UserType.class, USER_GUYBRUSH_OID, null, task, result); display("User after", userAfter); AssignmentType thiefAssignment = assertAssignedRole(userAfter, ROLE_THIEF_OID); assertEquals("Wrong originMappingName", "assignment-from-subtype-thief", thiefAssignment.getMetadata().getOriginMappingName()); }
MetadataFactory.fromJAXB(jaxb.getMetadata(), repo, repositoryContext.prismContext, repositoryContext.relationRegistry);
assertAssignedAccount(userJack, RESOURCE_DUMMY_BLUE_OID); AssignmentType pirateAssignment = assertAssignedRole(userJack, ROLE_PIRATE_OID); assertEquals("Wrong originMappingName", "assignment-from-subtype", pirateAssignment.getMetadata().getOriginMappingName()); assertAssignments(userJack, 2);
assertNotAssignedRole(userJack, ROLE_PIRATE_OID); AssignmentType rumAssignment = assertAssignedOrg(userJack, ORG_MINISTRY_OF_RUM_OID); assertEquals("Wrong originMappingName", "Org mapping", rumAssignment.getMetadata().getOriginMappingName()); AssignmentType offenseAssignment = assertAssignedOrg(userJack, ORG_MINISTRY_OF_OFFENSE_OID); assertEquals("Wrong originMappingName", "Org mapping", offenseAssignment.getMetadata().getOriginMappingName()); assertHasOrg(userJack, ORG_MINISTRY_OF_RUM_OID); assertHasOrg(userJack, ORG_MINISTRY_OF_OFFENSE_OID);
assertNotAssignedRole(userJack, ROLE_PIRATE_OID); AssignmentType offenseAssignment = assertAssignedOrg(userJack, ORG_MINISTRY_OF_OFFENSE_OID); assertEquals("Wrong originMappingName", "Org mapping", offenseAssignment.getMetadata().getOriginMappingName()); assertHasOrg(userJack, ORG_MINISTRY_OF_OFFENSE_OID); assertAssignments(userJack, 2);
assertNotAssignedRole(userJack, ROLE_PIRATE_OID); AssignmentType rumAssignment = assertAssignedOrg(userJack, ORG_MINISTRY_OF_RUM_OID); assertEquals("Wrong originMappingName", "Org mapping", rumAssignment.getMetadata().getOriginMappingName()); assertHasOrg(userJack, ORG_MINISTRY_OF_RUM_OID); assertAssignments(userJack, 2);
/** * MID-3692 */ @Test public void test191ModifyUserGuybrushOrganizationAutomatic() throws Exception { final String TEST_NAME = "test191ModifyUserGuybrushOrganizationAutomatic"; displayTestTitle(TEST_NAME); // GIVEN Task task = createTask(TEST_NAME); OperationResult result = task.getResult(); PrismObject<UserType> userBefore = getUser(USER_GUYBRUSH_OID); display("User before", userBefore); assertAssignedNoRole(userBefore); // WHEN displayWhen(TEST_NAME); modifyUserAdd(USER_GUYBRUSH_OID, UserType.F_ORGANIZATION, task, result, createPolyString("AUTO-matic")); // THEN displayThen(TEST_NAME); result.computeStatus(); TestUtil.assertSuccess(result); PrismObject<UserType> userAfter = modelService.getObject(UserType.class, USER_GUYBRUSH_OID, null, task, result); display("User after", userAfter); PrismAsserts.assertPropertyValue(userAfter, UserType.F_ORGANIZATION, createPolyString("Whateveric"), createPolyString("AUTO-matic")); AssignmentType autoAssignment = assertAssignedRole(userAfter, ROLE_AUTOMATIC_OID); assertEquals("Wrong originMappingName", "automappic", autoAssignment.getMetadata().getOriginMappingName()); assertAssignments(userAfter, 2); assertRoles(getNumberOfRoles()); }
assertEquals("Wrong originMappingName", "gossip-inbound", pirateAssignment.getMetadata().getOriginMappingName()); assertAssignments(userAfter, 2); assertLinks(userAfter, 2);