public async Task PipelineBuilder_should_create_an_executable_simple_pipeline(string input, bool expected) { // Arrange var sut = new PipelineBuilder <string, bool>((inputFirst, builder) => inputFirst .Step(builder, first => first.Length) // First step takes the input and returns its length .Step(builder, length => length % 2 == 0) // Second step in the chain takes the length from first step and sees if its odd or even. ); // Act var actual = await sut.ExecuteAsync(input); // Assert Assert.Equal(expected, actual); }
public async Task PipelineBuilder_should_raise_exceptions() { // Arrange var expected = new Exception("Fake Exception"); var sut = new PipelineBuilder <string, bool>((inputFirst, builder) => inputFirst .Step(builder, first => first.Length) // First step takes the input and returns its length .Step(builder, length => // Second step has a problem { throw expected; return(true); }) ); // Act & Assert var actual = await Assert.ThrowsAsync <Exception>(() => sut.ExecuteAsync("test")); Assert.Equal(expected, actual); }