示例#1
0
        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());
        }
示例#2
0
        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);
        }
示例#3
0
 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)));
 }