public void ComposeWithPostprocessorsReturnsCorrectResult() { // Fixture setup var postproc1 = new DelegatingSpecifiedSpecimenCommand <string>(); var postproc2 = new DelegatingSpecifiedSpecimenCommand <string>(); var postproc3 = new DelegatingSpecifiedSpecimenCommand <string>(); var sut = new SutBuilder <string>().With(new[] { postproc1, postproc2, postproc3 }).Create(); // Exercise system var result = sut.Compose(); // Verify outcome var filter = result.IsFilter().ShouldSpecify <string>(); var composite = Assert.IsAssignableFrom <CompositeSpecimenBuilder>(filter.Builder); var pp1 = Assert.IsAssignableFrom <Postprocessor <string> >(composite.Builders.First()); Assert.Equal(postproc3.Execute, pp1.Action); var pp2 = Assert.IsAssignableFrom <Postprocessor <string> >(pp1.Builder); Assert.Equal(postproc2.Execute, pp2.Action); var pp3 = Assert.IsAssignableFrom <Postprocessor <string> >(pp2.Builder); Assert.Equal(postproc1.Execute, pp3.Action); var guard = Assert.IsAssignableFrom <NoSpecimenOutputGuard>(pp3.Builder); Assert.Equal(sut.Factory, guard.Builder); // Teardown }
public void WithPostprocessorReturnsResultWithAddedPostprocessor() { // Fixture setup var expectedPostprocessor = new DelegatingSpecifiedSpecimenCommand <object>(); var sut = new SutBuilder <object>().Create(); // Exercise system var result = sut.WithPostprocessor(expectedPostprocessor); // Verify outcome Assert.Contains(expectedPostprocessor, result.Postprocessors); // Teardown }
public void WithPostprocessorReturnsResultWithCorrectFactory() { // Fixture setup var sut = new SutBuilder <object>().Create(); var expectedFactory = sut.Factory; // Exercise system var dummyPostprocessor = new DelegatingSpecifiedSpecimenCommand <object>(); var result = sut.WithPostprocessor(dummyPostprocessor); // Verify outcome Assert.Equal(expectedFactory, result.Factory); // Teardown }