public void CreateTypedNodeReturnsCorrectResult(Type targetType) { // Fixture setup var factory = new DelegatingSpecimenBuilder(); // Exercise system FilteringSpecimenBuilder actual = SpecimenBuilderNodeFactory.CreateTypedNode( targetType, factory); // Verify outcome var expected = new FilteringSpecimenBuilder( new CompositeSpecimenBuilder( new NoSpecimenOutputGuard( factory, new InverseRequestSpecification( new SeedRequestSpecification( targetType))), new SeedIgnoringRelay()), new OrRequestSpecification( new SeedRequestSpecification(targetType), new ExactTypeSpecification(targetType))); Assert.True(expected.GraphEquals(actual, new NodeComparer())); // Teardown }
public void SutIsSpecimenBuilder() { // Fixture setup var dummySpecification = new DelegatingRequestSpecification(); var dummyBuilder = new DelegatingSpecimenBuilder(); // Exercise system var sut = new FilteringSpecimenBuilder(dummyBuilder, dummySpecification); // Verify outcome Assert.IsAssignableFrom<ISpecimenBuilder>(sut); // Teardown }
public void SpecificationIsCorrect() { // Fixture setup var dummyBuilder = new DelegatingSpecimenBuilder(); var expectedSpecification = new DelegatingRequestSpecification(); var sut = new FilteringSpecimenBuilder(dummyBuilder, expectedSpecification); // Exercise system IRequestSpecification result = sut.Specification; // Verify outcome Assert.Equal(expectedSpecification, result); // Teardown }
public void CreateReturnsCorrectResultWhenSpecificationIsNotSatisfied() { // Fixture setup var spec = new DelegatingRequestSpecification { OnIsSatisfiedBy = r => false }; var dummyBuilder = new DelegatingSpecimenBuilder(); var sut = new FilteringSpecimenBuilder(dummyBuilder, spec); var request = new object(); // Exercise system var dummyContainer = new DelegatingSpecimenContext(); var result = sut.Create(request, dummyContainer); // Verify outcome var expectedResult = new NoSpecimen(request); Assert.Equal(expectedResult, result); // Teardown }
public void SpecificationReceivesCorrectRequest() { // Fixture setup var expectedRequest = new object(); var verified = false; var specMock = new DelegatingRequestSpecification { OnIsSatisfiedBy = r => verified = expectedRequest == r }; var dummyBuilder = new DelegatingSpecimenBuilder(); var sut = new FilteringSpecimenBuilder(dummyBuilder, specMock); // Exercise system var dummyContainer = new DelegatingSpecimenContext(); sut.Create(expectedRequest, dummyContainer); // Verify outcome Assert.True(verified, "Mock verified"); // 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 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 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 }
public void SutYieldsDecoratedBuilder() { // Fixture setup var expected = new DelegatingSpecimenBuilder(); var dummySpecification = new DelegatingRequestSpecification(); // Exercise system var sut = new FilteringSpecimenBuilder(expected, dummySpecification); // Verify outcome Assert.True(new[] { expected }.SequenceEqual(sut)); Assert.True(new object[] { expected }.SequenceEqual(((System.Collections.IEnumerable)sut).Cast<object>())); // Teardown }
public void CreatePassesCorrectParametersToDecoratedBuilder() { // Fixture setup var expectedRequest = new object(); var expectedContainer = new DelegatingSpecimenContext(); var verified = false; var builderMock = new DelegatingSpecimenBuilder { OnCreate = (r, c) => verified = r == expectedRequest && c == expectedContainer }; var spec = new DelegatingRequestSpecification { OnIsSatisfiedBy = r => true }; var sut = new FilteringSpecimenBuilder(builderMock, spec); // Exercise system sut.Create(expectedRequest, expectedContainer); // Verify outcome Assert.True(verified, "Mock verified"); // Teardown }
public void CreateReturnsCorrectResultWhenFilterAllowsRequestThrough() { // Fixture setup var expectedResult = new object(); var spec = new DelegatingRequestSpecification { OnIsSatisfiedBy = r => true }; var builder = new DelegatingSpecimenBuilder { OnCreate = (r, c) => expectedResult }; var sut = new FilteringSpecimenBuilder(builder, spec); // Exercise system var dummyRequest = new object(); var dummyContainer = new DelegatingSpecimenContext(); var result = sut.Create(dummyRequest, dummyContainer); // Verify outcome Assert.Equal(expectedResult, result); // Teardown }