コード例 #1
0
        public virtual void testHappyPathV2()
        {
            Stream      invoiceInputStream = typeof(InvoiceProcessApplication).ClassLoader.getResourceAsStream("invoice.pdf");
            VariableMap variables          = Variables.createVariables().putValue("creditor", "Great Pizza for Everyone Inc.").putValue("amount", 300.0d).putValue("invoiceCategory", "Travel Expenses").putValue("invoiceNumber", "GPFE-23232323").putValue("invoiceDocument", fileValue("invoice.pdf").file(invoiceInputStream).mimeType("application/pdf").create());

            ProcessInstance pi = runtimeService.startProcessInstanceByKey("invoice", variables);

            Task task = taskService.createTaskQuery().processInstanceId(pi.Id).singleResult();

            assertEquals("approveInvoice", task.TaskDefinitionKey);

            IList <IdentityLink> links          = taskService.getIdentityLinksForTask(task.Id);
            ISet <string>        approverGroups = new HashSet <string>();

            foreach (IdentityLink link in links)
            {
                approverGroups.Add(link.GroupId);
            }
            assertEquals(2, approverGroups.Count);
            assertTrue(approverGroups.Contains("accounting"));
            assertTrue(approverGroups.Contains("sales"));

            variables.clear();
            variables.put("approved", true);
            taskService.complete(task.Id, variables);

            task = taskService.createTaskQuery().processInstanceId(pi.Id).singleResult();

            assertEquals("prepareBankTransfer", task.TaskDefinitionKey);
            taskService.complete(task.Id);

            Job archiveInvoiceJob = managementService.createJobQuery().singleResult();

            assertNotNull(archiveInvoiceJob);
            managementService.executeJob(archiveInvoiceJob.Id);

            assertProcessEnded(pi.Id);
        }