// cast -> check
assertHasDataFlowEdge(validate, cast, check);
// 'y' runs 'hide'
OperationCallNode callHide = assertHasOperationCallNode(validate, "call hide");
assertHasRunAction(validate, callHide, hide);
assertHasExecutionEdge(validate, check, callHide, "yes");
// 'n' first sets the value of the label
OperationCallNode callUpdate = assertHasOperationCallNode(validate, "update label");
ECARule runUpdate = assertHasRunAction(validate, callUpdate, update);
assertHasExecutionEdge(validate, check, callUpdate, "no");
// with a parmameter of the exception
Value warning = assertHasValue(validate, "failure message");
assertTrue(warning.isReadOnly());
assertEquals("Warning: Invalid input.", warning.getDefaultValue());
assertHasParameter(validate, warning, runUpdate);
// and then 'n' calls 'show'
OperationCallNode callShow = assertHasOperationCallNode(validate, "call show");
assertHasRunAction(validate, callShow, show);
assertHasExecutionEdge(validate, callUpdate, callShow);
// 'callHide' then terminates
assertGenerated(assertGoesToFinishNode(callHide));