public void ComposeSingleItemReturnsCorrectResult()
 {
     // Fixture setup
     var dummyBuilder = new DelegatingSpecimenBuilder();
     var dummySpecification = new DelegatingRequestSpecification();
     var sut = new FilteringSpecimenBuilder(dummyBuilder, dummySpecification);
     // Exercise system
     var expected = new DelegatingSpecimenBuilder();
     var actual = sut.Compose(new[] { expected });
     // Verify outcome
     var f = Assert.IsAssignableFrom<FilteringSpecimenBuilder>(actual);
     Assert.Equal(expected, f.Builder);
     // Teardown
 }
 public void ComposePreservesSpecification()
 {
     // Fixture setup
     var dummyBuilder = new DelegatingSpecimenBuilder();
     var expected = new DelegatingRequestSpecification();
     var sut = new FilteringSpecimenBuilder(dummyBuilder, expected);
     // Exercise system
     var actual = sut.Compose(new ISpecimenBuilder[0]);
     // Verify outcome
     var f = Assert.IsAssignableFrom<FilteringSpecimenBuilder>(actual);
     Assert.Equal(expected, f.Specification);
     // Teardown
 }
 public void ComposeReturnsCorrectResult()
 {
     // Fixture setup
     var dummyBuilder = new DelegatingSpecimenBuilder();
     var dummySpecification = new DelegatingRequestSpecification();
     var sut = new FilteringSpecimenBuilder(dummyBuilder, dummySpecification);
     // Exercise system
     var expectedBuilders = new[]
     {
         new DelegatingSpecimenBuilder(),
         new DelegatingSpecimenBuilder(),
         new DelegatingSpecimenBuilder()
     };
     var actual = sut.Compose(expectedBuilders);
     // Verify outcome
     var f = Assert.IsAssignableFrom<FilteringSpecimenBuilder>(actual);
     var composite = Assert.IsAssignableFrom<CompositeSpecimenBuilder>(f.Builder);
     Assert.True(expectedBuilders.SequenceEqual(composite));
     // Teardown
 }