}
@Test
public void testParallelConversion() {
// Create definition
WorkflowDefinition workflowDefinition = new WorkflowDefinition()
.name("testWorkflow")
.description("This is a test workflow")
.inParallel()
.inList()
.addHumanStep("first task", "kermit")
.addHumanStep("second task", "kermit")
.endList()
.inList()
.addHumanStep("gonzo task", "gonzo")
.endList()
.endParallel();
// Write result to byte-array
ByteArrayOutputStream baos = new ByteArrayOutputStream();
Writer writer = new OutputStreamWriter(baos);
converter.writeWorkflowDefinition(workflowDefinition, writer);
// Parse definition based on written JSON
WorkflowDefinition parsedDefinition = converter.readWorkflowDefinition(baos.toByteArray());
// Check if parsed definition matches the original one
assertEquals(workflowDefinition.getName(), parsedDefinition.getName());
assertEquals(workflowDefinition.getDescription(), parsedDefinition.getDescription());
ParallelStepsDefinition parallelDef = null;
for (StepDefinition step : parsedDefinition.getSteps()) {
if (step instanceof ParallelStepsDefinition) {
parallelDef = (ParallelStepsDefinition) step;
}
}
assertNotNull(parallelDef);