Search in sources :

Example 1 with Person

use of io.automatiko.engine.codegen.data.Person in project automatiko-engine by automatiko-io.

the class CallActivityTaskTest method testCallActivityTaskWithExpressionsForIO.

@Test
public void testCallActivityTaskWithExpressionsForIO() throws Exception {
    Application app = generateCodeProcessesOnly("subprocess/CallActivityWithIOexpression.bpmn2", "subprocess/CallActivitySubProcess.bpmn2");
    assertThat(app).isNotNull();
    Process<? extends Model> p = app.processes().processById("ParentProcess");
    Model m = p.createModel();
    Map<String, Object> parameters = new HashMap<>();
    parameters.put("person", new Person("john", 0));
    m.fromMap(parameters);
    ProcessInstance<?> processInstance = p.createInstance(m);
    processInstance.start();
    assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_ACTIVE);
    Model result = (Model) processInstance.variables();
    assertThat(result.toMap()).hasSize(1).containsKeys("person");
    Person person = (Person) result.toMap().get("person");
    assertEquals("new value", person.getName());
    List<WorkItem> workItems = processInstance.workItems(securityPolicy);
    assertEquals(1, workItems.size());
    WorkItem wi = workItems.get(0);
    assertEquals("MyTask", wi.getName());
    assertEquals(Active.ID, wi.getPhase());
    assertEquals(Active.STATUS, wi.getPhaseStatus());
    processInstance.transitionWorkItem(workItems.get(0).getId(), new HumanTaskTransition(Complete.ID, null, securityPolicy));
    assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_COMPLETED);
}
Also used : HumanTaskTransition(io.automatiko.engine.workflow.base.instance.impl.humantask.HumanTaskTransition) HashMap(java.util.HashMap) Model(io.automatiko.engine.api.Model) Application(io.automatiko.engine.api.Application) Person(io.automatiko.engine.codegen.data.Person) WorkItem(io.automatiko.engine.api.workflow.WorkItem) AbstractCodegenTest(io.automatiko.engine.codegen.AbstractCodegenTest) Test(org.junit.jupiter.api.Test)

Example 2 with Person

use of io.automatiko.engine.codegen.data.Person in project automatiko-engine by automatiko-io.

the class ConditionalEventTest method testNonInterruptingEventSubprocessConditionalEventProcess.

@Test
public void testNonInterruptingEventSubprocessConditionalEventProcess() throws Exception {
    Application app = generateCodeProcessesOnly("conditionalevent/ConditionalEventSubprocessNonInterrupting.bpmn2");
    Process<? extends Model> p = app.processes().processById("subprocessCondition");
    Model m = p.createModel();
    Map<String, Object> parameters = new HashMap<>();
    parameters.put("person", new Person("john", 30));
    m.fromMap(parameters);
    ProcessInstance processInstance = p.createInstance(m);
    processInstance.start();
    assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_ACTIVE);
    m.fromMap(Collections.singletonMap("person", new Person("john", 45)));
    processInstance.updateVariables(m);
    assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_ACTIVE);
    m.fromMap(Collections.singletonMap("person", new Person("john", 15)));
    processInstance.updateVariables(m);
    assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_ACTIVE);
    m.fromMap(Collections.singletonMap("person", new Person("john", 45)));
    processInstance.updateVariables(m);
    assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_ACTIVE);
    Object counter = ((Model) processInstance.variables()).toMap().get("counter");
    assertThat(counter).isNotNull().asList().hasSize(2);
    processInstance.abort();
}
Also used : HashMap(java.util.HashMap) Model(io.automatiko.engine.api.Model) ProcessInstance(io.automatiko.engine.api.workflow.ProcessInstance) Application(io.automatiko.engine.api.Application) Person(io.automatiko.engine.codegen.data.Person) Test(org.junit.jupiter.api.Test) AbstractCodegenTest(io.automatiko.engine.codegen.AbstractCodegenTest)

Example 3 with Person

use of io.automatiko.engine.codegen.data.Person in project automatiko-engine by automatiko-io.

the class ConditionalEventTest method testBoundaryConditionalEventProcess.

@Test
public void testBoundaryConditionalEventProcess() throws Exception {
    Application app = generateCodeProcessesOnly("conditionalevent/ConditionalBoundaryEvent.bpmn2");
    Process<? extends Model> p = app.processes().processById("boundaryCondition");
    Model m = p.createModel();
    Map<String, Object> parameters = new HashMap<>();
    parameters.put("person", new Person("john", 30));
    m.fromMap(parameters);
    ProcessInstance processInstance = p.createInstance(m);
    processInstance.start();
    assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_ACTIVE);
    m.fromMap(Collections.singletonMap("person", new Person("john", 45)));
    processInstance.updateVariables(m);
    assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_COMPLETED);
}
Also used : HashMap(java.util.HashMap) Model(io.automatiko.engine.api.Model) ProcessInstance(io.automatiko.engine.api.workflow.ProcessInstance) Application(io.automatiko.engine.api.Application) Person(io.automatiko.engine.codegen.data.Person) Test(org.junit.jupiter.api.Test) AbstractCodegenTest(io.automatiko.engine.codegen.AbstractCodegenTest)

Example 4 with Person

use of io.automatiko.engine.codegen.data.Person in project automatiko-engine by automatiko-io.

the class EmbeddedSubProcessTest method testEmbeddedSubProcessWithUserTaskAndVariableScopes.

@Test
public void testEmbeddedSubProcessWithUserTaskAndVariableScopes() throws Exception {
    Application app = generateCodeProcessesOnly("subprocess/EmbeddedSubProcessWithUserTask.bpmn2");
    assertThat(app).isNotNull();
    Process<? extends Model> p = app.processes().processById("embeddedWithUserTask_1_0");
    Person person = new Person("john", 25);
    Model m = p.createModel();
    Map<String, Object> parameters = new HashMap<>();
    parameters.put("person", person);
    m.fromMap(parameters);
    ProcessInstance<?> processInstance = p.createInstance(m);
    processInstance.start();
    assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_ACTIVE);
    List<WorkItem> tasks = processInstance.workItems();
    assertThat(tasks).hasSize(1);
    WorkItem wi = processInstance.workItem(tasks.get(0).getId());
    assertThat(wi).isNotNull();
    assertThat(wi.getParameters()).containsKey("person");
    assertThat(wi.getParameters()).extracting("person").isEqualTo(person);
    processInstance.completeWorkItem(tasks.get(0).getId(), new HashMap<>(Collections.singletonMap("person", new Person("mary", 20))));
    assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_COMPLETED);
}
Also used : HashMap(java.util.HashMap) Model(io.automatiko.engine.api.Model) Application(io.automatiko.engine.api.Application) Person(io.automatiko.engine.codegen.data.Person) WorkItem(io.automatiko.engine.api.workflow.WorkItem) AbstractCodegenTest(io.automatiko.engine.codegen.AbstractCodegenTest) Test(org.junit.jupiter.api.Test)

Example 5 with Person

use of io.automatiko.engine.codegen.data.Person in project automatiko-engine by automatiko-io.

the class EventSubProcessTest method testEventSignalSubProcessWithVersionedData.

@SuppressWarnings("unchecked")
@Test
public void testEventSignalSubProcessWithVersionedData() throws Exception {
    Application app = generateCodeProcessesOnly("event-subprocess/EventSubprocessSignalWithVersionedData.bpmn2");
    assertThat(app).isNotNull();
    Process<? extends Model> p = app.processes().processById("EventSubprocessSignal_1");
    Model m = p.createModel();
    Map<String, Object> parameters = new HashMap<>();
    m.fromMap(parameters);
    ProcessInstance<?> processInstance = p.createInstance(m);
    processInstance.start();
    assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_ACTIVE);
    processInstance.send(Sig.of("MySignal", new Person("john", 20)));
    assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_ACTIVE);
    Model result = (Model) processInstance.variables();
    assertThat(result.toMap()).hasSize(1).containsKeys("person");
    Person person = (Person) result.toMap().get("person");
    assertThat(person).isNotNull();
    assertThat(person.getName()).isEqualTo("john");
    assertThat(person.getAge()).isEqualTo(20);
    processInstance.send(Sig.of("MySignal", new Person("john", 21)));
    result = (Model) processInstance.variables();
    assertThat(result.toMap()).hasSize(1).containsKeys("person");
    person = (Person) result.toMap().get("person");
    assertThat(person).isNotNull();
    assertThat(person.getName()).isEqualTo("john");
    assertThat(person.getAge()).isEqualTo(21);
    processInstance.send(Sig.of("MySignal", new Person("john", 25)));
    result = (Model) processInstance.variables();
    assertThat(result.toMap()).hasSize(1).containsKeys("person");
    person = (Person) result.toMap().get("person");
    assertThat(person).isNotNull();
    assertThat(person.getName()).isEqualTo("john");
    assertThat(person.getAge()).isEqualTo(25);
    Map<String, List<Object>> versions = (Map<String, List<Object>>) ((AbstractProcessInstance<?>) processInstance).processInstance().getVariable(VariableScope.VERSIONED_VARIABLES);
    List<Object> personVersions = (List<Object>) versions.get("person");
    assertThat(personVersions).hasSize(2);
    processInstance.send(Sig.of("MySignal", new Person("john", 25)));
    processInstance.abort();
    assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_ABORTED);
}
Also used : AbstractProcessInstance(io.automatiko.engine.workflow.AbstractProcessInstance) HashMap(java.util.HashMap) Model(io.automatiko.engine.api.Model) List(java.util.List) Application(io.automatiko.engine.api.Application) Person(io.automatiko.engine.codegen.data.Person) HashMap(java.util.HashMap) Map(java.util.Map) AbstractCodegenTest(io.automatiko.engine.codegen.AbstractCodegenTest) Test(org.junit.jupiter.api.Test)

Aggregations

Application (io.automatiko.engine.api.Application)10 Model (io.automatiko.engine.api.Model)10 AbstractCodegenTest (io.automatiko.engine.codegen.AbstractCodegenTest)10 Person (io.automatiko.engine.codegen.data.Person)10 HashMap (java.util.HashMap)10 Test (org.junit.jupiter.api.Test)10 ProcessInstance (io.automatiko.engine.api.workflow.ProcessInstance)3 WorkItem (io.automatiko.engine.api.workflow.WorkItem)3 AbstractProcessInstance (io.automatiko.engine.workflow.AbstractProcessInstance)1 HumanTaskTransition (io.automatiko.engine.workflow.base.instance.impl.humantask.HumanTaskTransition)1 List (java.util.List)1 Map (java.util.Map)1