@Test public void testProperties() { ExecutableWorkflow workflow = new ExecutableWorkflow() .activity("start", new ReceiveTask() .property("a", "A")) .transition(new Transition() .fromId("a") .property("b", "B")) .property("c", "C"); deploy(workflow); workflow = workflowEngine.findWorkflows(null).get(0); assertEquals("C", workflow.getProperty("c")); assertEquals("A", workflow.getActivities().get(0).getProperty("a")); assertEquals("B", workflow.getTransitions().get(0).getProperty("b")); } }
public void testTransition() { Condition condition = new IsTrue().left(new Binding().expression("testsPassed")); ExecutableWorkflow workflow = new ExecutableWorkflow() .activity("start", new StartEvent()) .activity("smokeTest", new NoneTask()) .activity("checkTestResult", new ExclusiveGateway().defaultTransitionId("to-failed")) .activity("passed", new EndEvent()) .activity("failed", new EndEvent()) .transition("to-smokeTest", new Transition().fromId("start").toId("smokeTest").description("Starting the process")) .transition("to-checkTestResult", new Transition().fromId("smokeTest").toId("checkTestResult")) .transition("to-passed", new Transition().fromId("checkTestResult").toId("passed").condition(condition)) .transition("to-failed", new Transition().fromId("checkTestResult").toId("failed")); workflow = serialize(workflow); assertEquals(4, workflow.getTransitions().size()); assertEquals("to-smokeTest", workflow.getTransitions().get(0).getId()); assertEquals("Starting the process", workflow.getTransitions().get(0).getDescription()); assertEquals("start", workflow.getTransitions().get(0).getFromId()); assertEquals("smokeTest", workflow.getTransitions().get(0).getToId()); assertEquals("to-passed", workflow.getTransitions().get(2).getId()); IsTrue deserialisedCondition = (IsTrue) workflow.getTransitions().get(2).getCondition(); assertEquals("testsPassed", deserialisedCondition.getLeft().getExpression()); }
@Test public void testEmbeddedSubprocess() { ExecutableWorkflow workflow = new ExecutableWorkflow() .activity("phase1", new EmbeddedSubprocess().name("phase one").activity("start", new StartEvent()).activity("end", new EndEvent()) .transition(new Transition().fromId("start").toId("end"))); workflow = serializeWorkflow(workflow); EmbeddedSubprocess embeddedSubprocess = (EmbeddedSubprocess) workflow.getActivities().get(0); assertEquals("phase1", embeddedSubprocess.getId()); assertEquals("phase one", embeddedSubprocess.getName()); StartEvent startEvent = (StartEvent) embeddedSubprocess.getActivities().get(0); assertEquals("start", startEvent.getId()); EndEvent endEvent = (EndEvent) embeddedSubprocess.getActivities().get(1); assertEquals("end", endEvent.getId()); Transition transition = embeddedSubprocess.getTransitions().get(0); assertEquals("start", transition.getFromId()); assertEquals("end", transition.getToId()); }
@Test public void testDanglingTransition() { ExecutableWorkflow workflow = new ExecutableWorkflow() .activity("one", new ReceiveTask()) .transition(new Transition().fromId("one")); deploy(workflow); WorkflowInstance workflowInstance = start(workflow); assertOpen(workflowInstance, "one"); String oneId = getActivityInstanceId(workflowInstance, "one"); workflowInstance = sendMessage(workflowInstance, oneId); assertTrue(workflowInstance.isEnded()); } }
public void testWorkflow() { ExecutableWorkflow workflow = new ExecutableWorkflow() .id(new WorkflowId(workflowId())) .name("Software release") .description("Regular software production release process.") .sourceWorkflowId(workflowId()) .variable("v", TextType.INSTANCE) .activity("s", new StartEvent()) .activity("task", new NoneTask()) .transition(new Transition().fromId("s").toId("task")); workflow = serialize(workflow); assertEquals(workflowId(), workflow.getId().getInternal()); assertEquals("Software release", workflow.getName()); assertEquals("Regular software production release process.", workflow.getDescription()); assertEquals(workflowId(), workflow.getSourceWorkflowId()); assertEquals(StartEvent.class, workflow.getActivities().get(0).getClass()); assertEquals("s", workflow.getActivities().get(0).getId()); }
.activity("start", new StartEvent()) .activity("end", new EndEvent()) .transition(new Transition().fromId("start").toId("end")) .property("str", "s") .property("lis", Lists.of("a", 1, true))
.leftExpression("v") .rightValue(10)) .fromId("?").toId("t1")) .transition(new Transition() .condition(new LessThan() .leftExpression("v") .rightValue(100)) .fromId("?").toId("t2")) .transition(new Transition() .id("default") .fromId("?").toId("t3")) .activity("t1", new ReceiveTask()) .activity("t2", new ReceiveTask())