Operation targetOp = assertHasOperation(field2, "update");
assertNotSame(srcEdit, targetEdit);
assertNotSame(srcOp, targetOp);
// there should be a run wire between these two
ECARule srcRw = assertHasRunAction(wire, srcEdit, targetOp, "run");
ECARule targetRw = assertHasRunAction(wire, targetEdit, srcOp, "run");
// [new]
// there should be a Function wire to the new SyncWire
assertGenerated(assertHasSimpleCondition(root, cond, sw));
// there should be additional ConditionWires to these RunActions
assertGenerated(assertHasSimpleCondition(page1, cond, srcRw));
assertGenerated(assertHasSimpleCondition(page1, cond, targetRw));
// there doesn't need to be any parameters to these ConditionWires
// we should also have Function wires copied to the 'init' operations
Event srcAccess = field1.getOnAccess();
Operation srcInit = assertHasOperation(field1, "init");
Event targetAccess = field2.getOnAccess();
Operation targetInit = assertHasOperation(field2, "init");
assertNotSame(srcAccess, targetAccess);
assertNotSame(srcInit, targetInit);
// execution wires
ECARule srcInitRun = assertHasRunAction(wire, srcAccess, srcInit, "run");
ECARule targetInitRun = assertHasRunAction(wire, targetAccess, targetInit, "run");
// they should have incoming parameters
Value field1value = assertHasFieldValue(field1);
Value field2value = assertHasFieldValue(field2);
assertNotSame(field1value, field2value);