public void TestBuilderWithSettings() { // Arrange PipelineComponentResolver.Add(new ConfigurableComponent()); var pipeline = NonAsyncPipelineBuilder <TestPayload> .Initialize(null) .WithComponent <ConfigurableComponent>() .WithComponentResolver(PipelineComponentResolver) .WithSettings(new Dictionary <string, IDictionary <string, string> > { { "ConfigurableComponent", new Dictionary <string, string> { { "UseFoo", "false" }, { "TestValue", "MyBarTestValue" } } } }) .Build(); var payload = new TestPayload(); // Act var result = pipeline.Execute(payload); // Assert pipeline.Name.StartsWith("Pipeline").Should().BeTrue(); payload.FooStatus.Should().BeNull(); result.BarStatus.Should().Be("MyBarTestValue"); }
public void TestBuilderByComponentType() { // Arrange const string name = "test-name"; PipelineComponentResolver.Add(new FooComponent()); PipelineComponentResolver.Add(new BarComponent()); var pipeline = NonAsyncPipelineBuilder <TestPayload> .Initialize(null) .WithComponent <FooComponent>() .WithComponent <BarComponent>() .WithComponentResolver(PipelineComponentResolver) .WithoutSettings() .Build(name); var payload = new TestPayload(); // Act payload.FooWasCalled.Should().BeFalse(); payload.BarWasCalled.Should().BeFalse(); var result = pipeline.Execute(payload); // Assert pipeline.Name.Should().Be(name); result.Count.Should().Be(2); result.Count.Should().Be(2); result.FooWasCalled.Should().BeTrue(); result.BarWasCalled.Should().BeTrue(); }
public void TestWithComponent_ThrowsInvalidOperationException() { // Arrange // Act Action act = () => NonAsyncPipelineBuilder <TestPayload> .Initialize(null) .WithComponent(typeof(string)); // Assert act.Should() .ThrowExactly <InvalidOperationException>() .WithMessage("* does not derive from *"); }
public void TestBuilderWithSettings() { // Arrange var pipeline = NonAsyncPipelineBuilder <TestPayload> .Initialize() .WithComponent("Component1") .WithComponent("Component2") .WithComponentResolver(PipelineComponentResolver) .WithSettings(new Dictionary <string, IDictionary <string, string> > { { "Component1", new Dictionary <string, string> { { "UseFoo", "true" }, { "TestValue", "MyFooTestValue" } } }, { "Component2", new Dictionary <string, string> { { "UseFoo", "false" }, { "TestValue", "MyBarTestValue" } } } }) .Build(); var payload = new TestPayload(); // Act payload.FooStatus.Should().BeNull(); payload.BarStatus.Should().BeNull(); var result = pipeline.Execute(payload); // Assert result.FooStatus.Should().Be("MyFooTestValue"); result.BarStatus.Should().Be("MyBarTestValue"); }
public void TestBuilderMixAndMatchComponents() { // Arrange var pipeline = NonAsyncPipelineBuilder <TestPayload> .Initialize() .WithComponent <FooComponent>() .WithComponent("BarComponent") .WithComponentResolver(PipelineComponentResolver) .WithNoSettings() .Build(); var payload = new TestPayload(); // Act payload.FooWasCalled.Should().BeFalse(); payload.BarWasCalled.Should().BeFalse(); var result = pipeline.Execute(payload); // Assert result.Count.Should().Be(2); result.FooWasCalled.Should().BeTrue(); result.BarWasCalled.Should().BeTrue(); }
public static IInitialPipelineComponentHolder <IPipeline <TPayload>, IPipelineComponent <TPayload>, TPayload> NonAsync() { return(NonAsyncPipelineBuilder <TPayload> .Initialize()); }