public void Execute_FullPipeline_ExecutesToTheEnd() { var initialComponent = PipelineComponent.CreatePipeline <string, int>((x, c) => x.Length); IPipelineOutput <bool> pipelineOutput = initialComponent .AddStep((x, c) => x > 10); initialComponent.Execute("12345678901"); Assert.IsTrue(pipelineOutput.GetOutput()); }
public void Execute_BrokenPipeline_DoesNotFinish() { bool triggered = false; var initialComponent = PipelineComponent.CreatePipeline <int, bool>((x, c) => { c.Break(); return(true); }); IPipelineOutput <bool> pipelineOutput = initialComponent.AddStep((x, c) => { triggered = true; return(x); }); var context = new PipelineContext(); initialComponent.Execute(10, context); Assert.IsTrue(context.IsBroken); Assert.IsFalse(triggered); }
public static IPipelineComponent <POut, NOut> AddStep <PIn, POut, NOut>(this IPipelineComponent <PIn, POut> component, Func <POut, IPipelineContext, NOut> step) { return(component.AddStep(PipelineComponent.CreatePipeline(step))); }