@Test
public void test_builder() {

    MultiStepEvaluationFunction.Builder<Serializable> builder = MultiStepEvaluationFunction.<Serializable>builder()
            .withErrorExtractor(new ErrorExtractor<Serializable>() {
                @Override public void process(Map<String, Serializable> events, Exception ex, EvaluationContext<Serializable> context) {}
                @Override public Set<String> getChannelIdentifiers() {
                return null;
              }
            })
            .withEvaluationCompleteExtractor(new EvaluationCompleteExtractor<Serializable>() {
                @Override public void process(Map<String, Serializable> events, EvaluationContext<Serializable> context) {}
                @Override public Set<String> getChannelIdentifiers() {
                    return null;
                }
            })
            .withOverallTimeoutMs(0L)
            .addEvaluationFunction(new LambdaEvaluationFunction<>(
                            ctx -> { /* do nothing */ },
                            () -> new HashSet<>(ImmutableList.of("string"))
                    ),""
            ).addEvaluationFunction(new LambdaEvaluationFunction<>(
                            ctx -> { /* do nothing */ },
                            () -> new HashSet<>(ImmutableList.of("string"))
                    ),"",0L
            ).addEvaluationFunctionFactory(
                    CloneStateEvaluationFunctionFactory.<Serializable>builder()
                            .withPrototype(new LambdaEvaluationFunction<Serializable>(
                                    ctx -> { /* do nothing */ },
                                    () -> new HashSet<>(ImmutableSet.of("string"))
                            )).build(),
                    ""
            ).addEvaluationFunctionFactory(
                    CloneStateEvaluationFunctionFactory.<Serializable>builder()
                            .withPrototype(new LambdaEvaluationFunction<>(
                                    ctx -> { /* do nothing */ },
                                    () -> new HashSet<>(Arrays.asList("string"))
                            )).build(),
                    "",
                    0L
            )
            ;
    builder.build();
}