use of org.osate.ge.internal.operations.Step in project osate2 by osate.
the class OperationTest method testSplitAbort.
@Test
public void testSplitAbort() {
final DefaultOperationBuilder rootOpBuilder = new DefaultOperationBuilder();
final OperationBuilder<Integer> b = rootOpBuilder.map(arg -> StepResultBuilder.create(1).build());
final AtomicBoolean executed = new AtomicBoolean(false);
b.map(pr -> StepResultBuilder.create(pr + 2).build()).modifyModel(null, (tag, prevResult) -> testBo, (tag, boToModify, prevResult) -> {
return StepResultBuilder.create(prevResult + 1).abort().build();
}).modifyModel(null, (tag, prevResult) -> testBo, (tag, boToModify, prevResult) -> {
executed.set(true);
return StepResultBuilder.create().showNewBusinessObject(stubBoc, prevResult + 2).build();
});
b.map(pr -> StepResultBuilder.create(pr + 6).build()).modifyModel(null, (tag, prevResult) -> testBo, (tag, boToModify, prevResult) -> {
executed.set(true);
return StepResultBuilder.create().showNewBusinessObject(stubBoc, prevResult + 3).build();
});
final Step firstStep = rootOpBuilder.build();
final OperationExecutor executor = new OperationExecutor(modificationService, referenceBuilder);
executor.execute(firstStep);
assertEquals(false, executed.get());
}
Aggregations