public List<PrismContainerValue<WorkItemType>> searchApprovalWorkItems(int days, QName sortColumn) throws CommunicationException, ObjectNotFoundException, SchemaException, SecurityViolationException, ConfigurationException, ExpressionEvaluationException, DatatypeConfigurationException { Task task = taskManager.createTaskInstance(); OperationResult result = task.getResult(); ObjectQuery query = prismContext.queryFor(AbstractWorkItemType.class).build(); if (days > 0) { XMLGregorianCalendar since = (new Clock()).currentTimeXMLGregorianCalendar(); DatatypeFactory df = DatatypeFactory.newInstance(); since.add (df.newDuration(false, 0, 0, days, 0, 0, 0)); query.addFilter(prismContext.queryFor(AbstractWorkItemType.class) .item(AbstractWorkItemType.F_CREATE_TIMESTAMP).lt(since).buildFilter()); } if (sortColumn != null) { query.addFilter(prismContext.queryFor(AbstractWorkItemType.class) .asc(sortColumn) .buildFilter()); } Object[] itemsToResolve = { WorkItemType.F_ASSIGNEE_REF, ItemPath.create(PrismConstants.T_PARENT, WfContextType.F_OBJECT_REF), ItemPath.create(PrismConstants.T_PARENT, WfContextType.F_TARGET_REF), ItemPath.create(PrismConstants.T_PARENT, WfContextType.F_REQUESTER_REF) }; SearchResultList<WorkItemType> workItems = model.searchContainers(WorkItemType.class, query, schemaHelper.getOperationOptionsBuilder().items(itemsToResolve).resolve().build(), task, result); return PrismContainerValue.toPcvList(workItems); }
.item(T_PARENT, F_OBJECT_REF).resolve() .item(T_PARENT, F_TARGET_REF).resolve() .item(F_ASSIGNEE_REF).resolve() .item(F_ORIGINAL_ASSIGNEE_REF).resolve() .item(T_PARENT, F_REQUESTER_REF).resolve() .build(); List<WorkItemType> workItems = modelService.searchContainers(WorkItemType.class, null, options1, opTask, result);
.item(UserType.F_LINK).resolve() .build();
@Test public void test110GetRoleResolveEntitlement() throws Exception { final String TEST_NAME = "test110GetRoleResolveEntitlement"; displayTestTitle(TEST_NAME); // GIVEN Task task = createTask(TEST_NAME); OperationResult result = task.getResult(); assumeAssignmentPolicy(AssignmentPolicyEnforcementType.POSITIVE); Collection<SelectorOptions<GetOperationOptions>> options = schemaHelper.getOperationOptionsBuilder() .item(UserType.F_LINK).resolve() .build(); // WHEN PrismObject<RoleType> role = modelService.getObject(RoleType.class, ROLE_PIRATE_OID, options, task, result); RoleType roleType = role.asObjectable(); assertLinks(role, 1); PrismReferenceValue linkRef = getSingleLinkRef(role); assertEquals("OID mismatch in linkRefValue", groupOid, linkRef.getOid()); assertNotNull("Missing account object in linkRefValue", linkRef.getObject()); ShadowType shadow = roleType.getLink().get(0); assertDummyGroupShadowModel(shadow.asPrismObject(), groupOid, GROUP_PIRATE_DUMMY_NAME); result.computeStatus(); TestUtil.assertSuccess("getObject result", result); }
@Test public void test221GetResourceNotFoundResolveConnector() throws Exception { final String TEST_NAME = "test221GetResourceNotFoundResolveConnector"; displayTestTitle(TEST_NAME); // GIVEN Task task = taskManager.createTaskInstance(TestBrokenResources.class.getName() + "."+TEST_NAME); OperationResult result = task.getResult(); Collection<SelectorOptions<GetOperationOptions>> options = getOperationOptionsBuilder() .item(ResourceType.F_CONNECTOR_REF).resolve() .build(); // WHEN PrismObject<ResourceType> resource = modelService.getObject(ResourceType.class, RESOURCE_CSVFILE_NOTFOUND_OID, options, task, result); // THEN display("getObject resource", resource); result.computeStatus(); display("getObject result", result); assertEquals("Expected partial errror in result", OperationResultStatus.PARTIAL_ERROR, result.getStatus()); OperationResultType fetchResult = resource.asObjectable().getFetchResult(); display("resource.fetchResult", fetchResult); assertEquals("Expected partial errror in fetchResult", OperationResultStatusType.PARTIAL_ERROR, fetchResult.getStatus()); // TODO: better asserts assertNotNull("Null resource", resource); assertNotNull("Connector was not resolved", resource.asObjectable().getConnector()); }
@Test public void test112GetRoleResolveEntitlementNoFetch() throws Exception { final String TEST_NAME = "test112GetRoleResolveEntitlementNoFetch"; displayTestTitle(TEST_NAME); // GIVEN Task task = createTask(TEST_NAME); OperationResult result = task.getResult(); assumeAssignmentPolicy(AssignmentPolicyEnforcementType.POSITIVE); Collection<SelectorOptions<GetOperationOptions>> options = schemaHelper.getOperationOptionsBuilder() .item(UserType.F_LINK) .resolve() .noFetch() .build(); // WHEN PrismObject<RoleType> role = modelService.getObject(RoleType.class, ROLE_PIRATE_OID, options, task, result); RoleType roleType = role.asObjectable(); assertLinks(role, 1); PrismReferenceValue linkRef = getSingleLinkRef(role); assertEquals("OID mismatch in linkRefValue", groupOid, linkRef.getOid()); assertNotNull("Missing account object in linkRefValue", linkRef.getObject()); ShadowType shadow = roleType.getLink().get(0); assertDummyGroupShadowRepo(shadow.asPrismObject(), groupOid, GROUP_PIRATE_DUMMY_NAME); result.computeStatus(); TestUtil.assertSuccess("getObject result", result); }