protected static StringAsset createScriptTaskProcess(String scriptFormat, String scriptText) { BpmnModelInstance modelInstance = Bpmn.createExecutableProcess(PROCESS_ID) .startEvent() .scriptTask() .scriptFormat(scriptFormat) .scriptText(scriptText) .camundaResultVariable(RESULT_VARIABLE) .userTask() .endEvent() .done(); return new StringAsset(Bpmn.convertToString(modelInstance)); }
protected static StringAsset createScriptTaskProcess(String scriptFormat, String scriptText) { BpmnModelInstance modelInstance = Bpmn.createExecutableProcess(PROCESS_ID) .startEvent() .scriptTask() .scriptFormat(scriptFormat) .scriptText(scriptText) .camundaResultVariable("scriptValue") .userTask() .endEvent() .done(); return new StringAsset(Bpmn.convertToString(modelInstance)); }
@Test public void testStartMessageCorrelationWithTransientVariable() { // given BpmnModelInstance instance = Bpmn.createExecutableProcess("process") .startEvent() .message("message") .scriptTask("scriptTask") .scriptFormat("javascript") .camundaResultVariable("abc") .scriptText("execution.setVariable('abc', foo);") .endEvent() .done(); testRule.deploy(instance); // when runtimeService.createMessageCorrelation("message") .setVariable("foo", Variables.stringValue("bar", true)) .correlate(); // then List<VariableInstance> variableInstances = runtimeService.createVariableInstanceQuery().list(); assertEquals(0, variableInstances.size()); List<HistoricVariableInstance> historicInstances = historyService.createHistoricVariableInstanceQuery().list(); assertEquals(1, historicInstances.size()); assertEquals("abc", historicInstances.get(0).getName()); assertEquals("bar", historicInstances.get(0).getValue()); }
@Test public void testParallelExecutions() { // given BpmnModelInstance instance = Bpmn.createExecutableProcess("Process") .startEvent() .parallelGateway() .scriptTask() .scriptFormat("javascript") .camundaResultVariable("abc") .scriptText("execution.setVariableLocal('abc', foo);") .endEvent() .moveToLastGateway() .scriptTask() .scriptFormat("javascript") .camundaResultVariable("abc") .scriptText("execution.setVariableLocal('abc', foo);") .endEvent() .done(); testRule.deploy(instance); // when runtimeService.startProcessInstanceByKey("Process", Variables.createVariables().putValueTyped("foo", Variables.stringValue("bar", true))); // then List<VariableInstance> variables = runtimeService.createVariableInstanceQuery().list(); assertEquals(0, variables.size()); List<HistoricVariableInstance> historicVariables = historyService.createHistoricVariableInstanceQuery().variableName("abc").list(); assertEquals(2, historicVariables.size()); }
@Test public void testSignalWithTransientVariables() { // given BpmnModelInstance instance = Bpmn.createExecutableProcess("Process") .startEvent() .intermediateCatchEvent("signalCatch") .signal("signal") .scriptTask("scriptTask") .scriptFormat("javascript") .camundaResultVariable("abc") .scriptText("execution.setVariable('abc', foo);") .endEvent() .done(); testRule.deploy(instance); runtimeService.startProcessInstanceByKey("Process"); // when runtimeService.signalEventReceived("signal", Variables.createVariables().putValue("foo", Variables.stringValue("bar", true))); // then List<HistoricVariableInstance> variables = historyService.createHistoricVariableInstanceQuery().list(); assertEquals(1, variables.size()); assertEquals("abc", variables.get(0).getName()); }
@Test public void testMessageCorrelationWithTransientVariable() { // given BpmnModelInstance instance = Bpmn.createExecutableProcess("process") .startEvent() .intermediateCatchEvent() .message("message") .scriptTask("scriptTask") .scriptFormat("javascript") .camundaResultVariable("abc") .scriptText("execution.setVariable('abc', blob);") .endEvent() .done(); testRule.deploy(instance); runtimeService.startProcessInstanceByKey("process", Variables.createVariables().putValueTyped("foo", Variables.stringValue("foo", false))); // when VariableMap correlationKeys = Variables.createVariables().putValueTyped("foo", Variables.stringValue("foo", true)); VariableMap variables = Variables.createVariables().putValueTyped("blob", Variables.stringValue("blob", true)); runtimeService.correlateMessage("message", correlationKeys, variables); // then VariableInstance variableInstance = runtimeService.createVariableInstanceQuery().singleResult(); assertNull(variableInstance); HistoricVariableInstance historicVariableInstance = historyService.createHistoricVariableInstanceQuery() .variableName("abc").singleResult(); assertNotNull(historicVariableInstance); assertEquals("blob", historicVariableInstance.getValue()); }
@Test public void testStartMessageCorrelationWithTransientVariable() { // given BpmnModelInstance instance = Bpmn.createExecutableProcess("process") .startEvent() .message("message") .scriptTask("scriptTask") .scriptFormat("javascript") .camundaResultVariable("abc") .scriptText("execution.setVariable('abc', foo);") .endEvent() .done(); testRule.deploy(instance); // when runtimeService.createMessageCorrelation("message") .setVariable("foo", Variables.stringValue("bar", true)) .correlate(); // then List<VariableInstance> variableInstances = runtimeService.createVariableInstanceQuery().list(); assertEquals(0, variableInstances.size()); List<HistoricVariableInstance> historicInstances = historyService.createHistoricVariableInstanceQuery().list(); assertEquals(1, historicInstances.size()); assertEquals("abc", historicInstances.get(0).getName()); assertEquals("bar", historicInstances.get(0).getValue()); }
@Test public void testParallelExecutions() { // given BpmnModelInstance instance = Bpmn.createExecutableProcess("Process") .startEvent() .parallelGateway() .scriptTask() .scriptFormat("javascript") .camundaResultVariable("abc") .scriptText("execution.setVariableLocal('abc', foo);") .endEvent() .moveToLastGateway() .scriptTask() .scriptFormat("javascript") .camundaResultVariable("abc") .scriptText("execution.setVariableLocal('abc', foo);") .endEvent() .done(); testRule.deploy(instance); // when runtimeService.startProcessInstanceByKey("Process", Variables.createVariables().putValueTyped("foo", Variables.stringValue("bar", true))); // then List<VariableInstance> variables = runtimeService.createVariableInstanceQuery().list(); assertEquals(0, variables.size()); List<HistoricVariableInstance> historicVariables = historyService.createHistoricVariableInstanceQuery().variableName("abc").list(); assertEquals(2, historicVariables.size()); }
@Test public void testSignalWithTransientVariables() { // given BpmnModelInstance instance = Bpmn.createExecutableProcess("Process") .startEvent() .intermediateCatchEvent("signalCatch") .signal("signal") .scriptTask("scriptTask") .scriptFormat("javascript") .camundaResultVariable("abc") .scriptText("execution.setVariable('abc', foo);") .endEvent() .done(); testRule.deploy(instance); runtimeService.startProcessInstanceByKey("Process"); // when runtimeService.signalEventReceived("signal", Variables.createVariables().putValue("foo", Variables.stringValue("bar", true))); // then List<HistoricVariableInstance> variables = historyService.createHistoricVariableInstanceQuery().list(); assertEquals(1, variables.size()); assertEquals("abc", variables.get(0).getName()); }
@Test public void testMessageCorrelationWithTransientVariable() { // given BpmnModelInstance instance = Bpmn.createExecutableProcess("process") .startEvent() .intermediateCatchEvent() .message("message") .scriptTask("scriptTask") .scriptFormat("javascript") .camundaResultVariable("abc") .scriptText("execution.setVariable('abc', blob);") .endEvent() .done(); testRule.deploy(instance); runtimeService.startProcessInstanceByKey("process", Variables.createVariables().putValueTyped("foo", Variables.stringValue("foo", false))); // when VariableMap correlationKeys = Variables.createVariables().putValueTyped("foo", Variables.stringValue("foo", true)); VariableMap variables = Variables.createVariables().putValueTyped("blob", Variables.stringValue("blob", true)); runtimeService.correlateMessage("message", correlationKeys, variables); // then VariableInstance variableInstance = runtimeService.createVariableInstanceQuery().singleResult(); assertNull(variableInstance); HistoricVariableInstance historicVariableInstance = historyService.createHistoricVariableInstanceQuery() .variableName("abc").singleResult(); assertNotNull(historicVariableInstance); assertEquals("blob", historicVariableInstance.getValue()); }