@Test
public void readProcessWithSendTaskFromBusinessArchive() throws Exception {
final ProcessDefinitionBuilder builder = new ProcessDefinitionBuilder().createNewInstance("MyProcess", "1.0");
final SendTaskDefinitionBuilder sendTaskDefinitionBuilder = builder.addSendTask("sendTask", "messageName",
new ExpressionBuilder().createConstantStringExpression("processName"));
sendTaskDefinitionBuilder.setTargetFlowNode(new ExpressionBuilder().createConstantStringExpression("flowNodeName"));
sendTaskDefinitionBuilder.addCorrelation(new ExpressionBuilder().createConstantStringExpression("un"),
new ExpressionBuilder().createConstantStringExpression("value"));
sendTaskDefinitionBuilder.addMessageContentExpression(new ExpressionBuilder().createConstantStringExpression("myData"),
new ExpressionBuilder().createConstantStringExpression("dataValue"));
final DesignProcessDefinition result = getDesignProcessDefinition(builder);
final SendTaskDefinition flowNode = (SendTaskDefinition) result.getFlowElementContainer().getFlowNode("sendTask");
assertEquals("sendTask", flowNode.getName());
final ThrowMessageEventTriggerDefinition messageTrigger = flowNode.getMessageTrigger();
assertEquals("processName", messageTrigger.getTargetProcess().getContent());
assertEquals("messageName", messageTrigger.getMessageName());
assertEquals("flowNodeName", messageTrigger.getTargetFlowNode().getContent());
assertEquals("myData", messageTrigger.getDataDefinitions().get(0).getName());
assertEquals("java.lang.String", messageTrigger.getDataDefinitions().get(0).getClassName());
assertEquals("dataValue", messageTrigger.getDataDefinitions().get(0).getDefaultValueExpression().getContent());
assertEquals("un", messageTrigger.getCorrelations().get(0).getKey().getContent());
assertEquals("value", messageTrigger.getCorrelations().get(0).getValue().getContent());
}