Search in sources :

Example 1 with Address

use of io.automatiko.engine.addons.persistence.data.Address in project automatiko-engine by automatiko-io.

the class FileSystemProcessInstancesTest method testComplexVariableFlow.

@Test
public void testComplexVariableFlow() {
    BpmnProcess process = (BpmnProcess) BpmnProcess.from(new ClassPathResource("BPMN2-PersonUserTask.bpmn2")).get(0);
    process.setProcessInstancesFactory(new FileSystemProcessInstancesFactory());
    process.configure();
    Person person = new Person("John", 30);
    Address mainAddress = new Address("first", "Brisbane", "00000", "Australia", true);
    Address secondaryAddress = new Address("second", "Syndey", "11111", "Australia", false);
    person.addAddress(mainAddress);
    person.addAddress(secondaryAddress);
    ProcessInstance<BpmnVariables> processInstance = process.createInstance(BpmnVariables.create(Collections.singletonMap("person", person)));
    processInstance.start();
    assertThat(processInstance.status()).isEqualTo(STATE_ACTIVE);
    assertThat(processInstance.description()).isEqualTo("User Task");
    assertThat(process.instances().values(1, 10)).hasSize(1);
    FileSystemProcessInstances fileSystemBasedStorage = (FileSystemProcessInstances) process.instances();
    verify(fileSystemBasedStorage, times(2)).create(any(), any());
    verify(fileSystemBasedStorage, times(1)).setMetadata(any(), eq(FileSystemProcessInstances.PI_DESCRIPTION), eq("User Task"));
    verify(fileSystemBasedStorage, times(1)).setMetadata(any(), eq(FileSystemProcessInstances.PI_STATUS), eq("1"));
    Person testVar = (Person) processInstance.variables().get("person");
    assertThat(testVar).isEqualTo(person);
    assertThat(processInstance.description()).isEqualTo("User Task");
    WorkItem workItem = processInstance.workItems(securityPolicy).get(0);
    assertThat(workItem).isNotNull();
    assertThat(workItem.getParameters().get("ActorId")).isEqualTo("john");
    processInstance.completeWorkItem(workItem.getId(), null, securityPolicy);
    assertThat(processInstance.status()).isEqualTo(STATE_COMPLETED);
    fileSystemBasedStorage = (FileSystemProcessInstances) process.instances();
    verify(fileSystemBasedStorage, times(2)).remove(any(), any());
}
Also used : BpmnProcess(io.automatiko.engine.workflow.bpmn2.BpmnProcess) Address(io.automatiko.engine.addons.persistence.data.Address) Person(io.automatiko.engine.addons.persistence.data.Person) WorkItem(io.automatiko.engine.api.workflow.WorkItem) ClassPathResource(io.automatiko.engine.services.io.ClassPathResource) BpmnVariables(io.automatiko.engine.workflow.bpmn2.BpmnVariables) Test(org.junit.jupiter.api.Test)

Aggregations

Address (io.automatiko.engine.addons.persistence.data.Address)1 Person (io.automatiko.engine.addons.persistence.data.Person)1 WorkItem (io.automatiko.engine.api.workflow.WorkItem)1 ClassPathResource (io.automatiko.engine.services.io.ClassPathResource)1 BpmnProcess (io.automatiko.engine.workflow.bpmn2.BpmnProcess)1 BpmnVariables (io.automatiko.engine.workflow.bpmn2.BpmnVariables)1 Test (org.junit.jupiter.api.Test)1