Search in sources :

Example 6 with Person

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

the class EventSubProcessTest method testEventSignalSubProcessWithData.

@Test
public void testEventSignalSubProcessWithData() throws Exception {
    Application app = generateCodeProcessesOnly("event-subprocess/EventSubprocessSignalWithData.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");
}
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) AbstractCodegenTest(io.automatiko.engine.codegen.AbstractCodegenTest) Test(org.junit.jupiter.api.Test)

Example 7 with Person

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

the class ConditionalEventTest method testEventSubprocessConditionalEventProcess.

@Test
public void testEventSubprocessConditionalEventProcess() throws Exception {
    Application app = generateCodeProcessesOnly("conditionalevent/ConditionalEventSubprocess.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_ABORTED);
}
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 8 with Person

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

the class MessageIntermediateEventTest method testMessageBoundaryCatchEventIOExpressionProcess.

@Test
public void testMessageBoundaryCatchEventIOExpressionProcess() throws Exception {
    Application app = generateCodeProcessesOnly("messageevent/BoundaryMessageEventOnTaskIOExpression.bpmn2");
    assertThat(app).isNotNull();
    Process<? extends Model> p = app.processes().processById("BoundaryMessageOnTask");
    Model m = p.createModel();
    Map<String, Object> parameters = new HashMap<>();
    parameters.put("person", new Person());
    m.fromMap(parameters);
    ProcessInstance<?> processInstance = p.createInstance(m);
    processInstance.start();
    assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_ACTIVE);
    processInstance.send(Sig.of("Message-customers", "CUS-00998877"));
    assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_COMPLETED);
    Model result = (Model) processInstance.variables();
    assertThat(result.toMap()).hasSize(2).containsKeys("customerId", "person");
    assertThat(result.toMap().get("person")).isNotNull().extracting("name").isEqualTo("CUS-00998877");
}
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) AbstractCodegenTest(io.automatiko.engine.codegen.AbstractCodegenTest) Test(org.junit.jupiter.api.Test)

Example 9 with Person

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

the class MessageIntermediateEventTest method testMessageCatchEventIOExpressionProcess.

@Test
public void testMessageCatchEventIOExpressionProcess() throws Exception {
    Application app = generateCodeProcessesOnly("messageevent/IntermediateCatchEventMessageIOExpression.bpmn2");
    assertThat(app).isNotNull();
    Process<? extends Model> p = app.processes().processById("IntermediateCatchEvent");
    Model m = p.createModel();
    Map<String, Object> parameters = new HashMap<>();
    parameters.put("person", new Person());
    m.fromMap(parameters);
    ProcessInstance<?> processInstance = p.createInstance(m);
    processInstance.start();
    assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_ACTIVE);
    processInstance.send(Sig.of("Message-customers", "CUS-00998877"));
    assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_COMPLETED);
    Model result = (Model) processInstance.variables();
    assertThat(result.toMap()).hasSize(2).containsKeys("customerId", "person");
    assertThat(result.toMap().get("person")).isNotNull().extracting("name").isEqualTo("CUS-00998877");
}
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) AbstractCodegenTest(io.automatiko.engine.codegen.AbstractCodegenTest) Test(org.junit.jupiter.api.Test)

Example 10 with Person

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

the class UserTaskTest method testUserTaskWithIOexpressionProcess.

@Test
public void testUserTaskWithIOexpressionProcess() throws Exception {
    Application app = generateCodeProcessesOnly("usertask/UserTaskWithIOexpression.bpmn2");
    assertThat(app).isNotNull();
    Process<? extends Model> p = app.processes().processById("UserTask");
    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);
    List<WorkItem> workItems = processInstance.workItems(securityPolicy);
    assertEquals(1, workItems.size());
    assertEquals("Hello", workItems.get(0).getName());
    assertEquals("john", workItems.get(0).getParameters().get("personName"));
    processInstance.completeWorkItem(workItems.get(0).getId(), Collections.singletonMap("personAge", 50), securityPolicy);
    assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_COMPLETED);
    Model output = (Model) processInstance.variables();
    Person person = (Person) output.toMap().get("person");
    assertEquals(50, person.getAge());
}
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)

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