/** * Test the approval of a protocol. The protocol status and its corresponding action should be set * to approved. */ @Test public void runApprovedTest() throws Exception { ProtocolDocument protocolDocument = ProtocolFactory.createProtocolDocument(); protocolSubmitActionService.submitToIrbForReview( protocolDocument.getProtocol(), getMockSubmitAction()); documentService.routeDocument(protocolDocument, null, null); documentService.blanketApproveDocument(protocolDocument, null, null); WorkflowDocument workflowDoc = getWorkflowDocument(protocolDocument); WorkflowDocumentActionsService info = GlobalResourceLoader.getService("rice.kew.workflowDocumentActionsService"); RoutingReportCriteria.Builder reportCriteriaBuilder = RoutingReportCriteria.Builder.createByDocumentId(workflowDoc.getDocumentId()); DocumentDetail results1 = info.executeSimulation(reportCriteriaBuilder.build()); assertTrue(workflowDoc.isFinal()); // the status update is not happening within doRouteStatusChange anymore // assertEquals(protocolDocument.getProtocol().getProtocolStatusCode(), // ProtocolStatus.ACTIVE_OPEN_TO_ENROLLMENT); assertTrue(protocolDocument.getProtocol().isActive()); // verifyProtocolAction(protocolDocument.getProtocol().getProtocolId(), // ProtocolActionType.APPROVED); }
@Override public List<String> buildListForFYI(AwardDocument awardDocument) throws WorkflowException { WorkflowDocument document = awardDocument.getDocumentHeader().getWorkflowDocument(); RoutingReportCriteria reportCriteria = RoutingReportCriteria.Builder.createByDocumentId(document.getDocumentId()).build(); // gather the IDs for action requests that predate the simulation DocumentRouteHeaderValue routeHeader = KEWServiceLocator.getRouteHeaderService().getRouteHeader(document.getDocumentId()); Set<String> preexistingActionRequestIds = getActionRequestIds(routeHeader); // run the simulation via WorkflowUtility DocumentDetail documentDetail = workflowUtility.executeSimulation(reportCriteria); // fabricate our ActionRequestValueS from the results List<ActionRequestValue> actionRequests = reconstituteActionRequestValues(documentDetail, preexistingActionRequestIds); List<String> actionIds = new ArrayList<String>(); for (ActionRequestValue request : actionRequests) { if (request.isGroupRequest()) { actionIds.addAll( KimApiServiceLocator.getGroupService().getMemberPrincipalIds(request.getGroupId())); } if (request.isUserRequest()) { actionIds.add(request.getPrincipalId()); } } return actionIds; }