/// <summary> /// This pipeline has 2 MockProcessor1's in it, both binding their inputs to the pipeline's 'intValue'. /// The pipeline has 2 outputs, one bound to each processor's. /// </summary> /// <returns></returns> public static MockPipeline CreateDoubleMockProcessor1Pipeline() { Processor processor1 = new MockProcessor1(); Processor processor2 = new MockProcessor1(); MockPipeline pipeline = new MockPipeline( new[] { processor1, processor2 }, new[] { new ProcessorArgument("intValue", typeof(int), new object[0]) }, new[] { new ProcessorArgument("theResult1", typeof(string), new object[0]), new ProcessorArgument("theResult2", typeof(string), new object[0])} ); // Pipeline["intValue"] --> Processor1[0] pipeline.BindArgumentToPipelineInput("intValue", processor1.InArguments[0]); // Pipeline["intValue"] --> Processor2[0] pipeline.BindArgumentToPipelineInput("intValue", processor2.InArguments[0]); // Processor1[0] --> Pipeline["theResult1"] pipeline.BindArgumentToPipelineOutput(processor1.OutArguments[0], "theResult1"); // Processor2[0] --> Pipeline["theResult2"] pipeline.BindArgumentToPipelineOutput(processor2.OutArguments[0], "theResult2"); pipeline.Initialize(); return pipeline; }
/// <summary> /// Creates a Pipeline with no actual processor other than binding the pipeline inputs to the /// pipeline outputs. /// </summary> /// <returns></returns> public static MockPipeline CreateEmptyPipeline() { MockPipeline pipeline = new MockPipeline( new Processor[0], new[] { new ProcessorArgument("inValue", typeof(string), new object[0]) }, new[] { new ProcessorArgument("outValue", typeof(string), new object[0]) } ); pipeline.BindArgumentToPipelineInput("inValue", pipeline.Processors[1].InArguments[0]); pipeline.Initialize(); return pipeline; }
public void Pipeline_Executes_With_No_Bindings_To_Pipeline() { MockProcessor1 processor1 = new MockProcessor1(); MockProcessorEchoString processor2 = new MockProcessorEchoString(); MockPipeline pipeline = new MockPipeline( new Processor[] { processor1, processor2 }, Enumerable.Empty<ProcessorArgument>(), Enumerable.Empty<ProcessorArgument>()); pipeline.BindArguments(processor1.OutArguments[0], processor2.InArguments[0]); pipeline.Initialize(); ProcessorResult result = pipeline.Execute(new object[0]); Assert.IsNotNull(result, "Expected non-null ProcessorResult"); Assert.IsNotNull(result.Output, "Expected non-null output from unbound pipeline"); Assert.AreEqual(0, result.Output.Length, "Expected empty array from unbound pipeline"); // Verify processor1 pushed default(int) through to processor2 object value = pipeline.Context.ReadInput(processor2.InArguments[0]); Assert.IsNotNull(value); Assert.AreEqual(default(int).ToString(), value, "Expected default(int) to be passed from processor1 to processor2"); }
public void Pipeline_Executes_With_No_Bindings() { MockProcessor1 processor1 = new MockProcessor1(); MockProcessorEchoString processor2 = new MockProcessorEchoString(); MockPipeline pipeline = new MockPipeline( new Processor[] { processor1, processor2 }, Enumerable.Empty<ProcessorArgument>(), Enumerable.Empty<ProcessorArgument>()); pipeline.Initialize(); ProcessorResult result = pipeline.Execute(new object[0]); Assert.IsNotNull(result, "Expected non-null ProcessorResult"); Assert.IsNotNull(result.Output, "Expected non-null output from unbound pipeline"); Assert.AreEqual(0, result.Output.Length, "Expected empty array from unbound pipeline"); Assert.AreEqual(ProcessorStatus.Ok, result.Status, "Expected OK status from pipeline"); }