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
        }
Ejemplo n.º 2
0
        internal static FilteringSpecimenBuilder ShouldContain(this FilteringSpecimenBuilder filter, Func <ISpecimenBuilder, bool> predicate)
        {
            var composite = Assert.IsAssignableFrom <CompositeSpecimenBuilder>(filter.Builder);

            Assert.Contains(composite, c => predicate(c));
            return(filter);
        }
        public void SutIsNode()
        {
            // Arrange
            var dummyBuilder       = new DelegatingSpecimenBuilder();
            var dummySpecification = new DelegatingRequestSpecification();
            // Act
            var sut = new FilteringSpecimenBuilder(dummyBuilder, dummySpecification);

            // Assert
            Assert.IsAssignableFrom <ISpecimenBuilderNode>(sut);
        }
        public void BuilderIsCorrect()
        {
            // Arrange
            var expectedBuilder    = new DelegatingSpecimenBuilder();
            var dummySpecification = new DelegatingRequestSpecification();
            var sut = new FilteringSpecimenBuilder(expectedBuilder, dummySpecification);
            // Act
            ISpecimenBuilder result = sut.Builder;

            // Assert
            Assert.Equal(expectedBuilder, result);
        }
Ejemplo n.º 5
0
        public void SutIsNode()
        {
            // Fixture setup
            var dummyBuilder       = new DelegatingSpecimenBuilder();
            var dummySpecification = new DelegatingRequestSpecification();
            // Exercise system
            var sut = new FilteringSpecimenBuilder(dummyBuilder, dummySpecification);

            // Verify outcome
            Assert.IsAssignableFrom <ISpecimenBuilderNode>(sut);
            // Teardown
        }
        public void SutYieldsDecoratedBuilder()
        {
            // Arrange
            var expected           = new DelegatingSpecimenBuilder();
            var dummySpecification = new DelegatingRequestSpecification();
            // Act
            var sut = new FilteringSpecimenBuilder(expected, dummySpecification);

            // Assert
            Assert.True(new[] { expected }.SequenceEqual(sut));
            Assert.True(new object[] { expected }.SequenceEqual(((System.Collections.IEnumerable)sut).Cast <object>()));
        }
        public void SpecificationIsCorrect()
        {
            // Arrange
            var dummyBuilder          = new DelegatingSpecimenBuilder();
            var expectedSpecification = new DelegatingRequestSpecification();
            var sut = new FilteringSpecimenBuilder(dummyBuilder, expectedSpecification);
            // Act
            IRequestSpecification result = sut.Specification;

            // Assert
            Assert.Equal(expectedSpecification, result);
        }
        public void ComposePreservesSpecification()
        {
            // Arrange
            var dummyBuilder = new DelegatingSpecimenBuilder();
            var expected     = new DelegatingRequestSpecification();
            var sut          = new FilteringSpecimenBuilder(dummyBuilder, expected);
            // Act
            var actual = sut.Compose(new ISpecimenBuilder[0]);
            // Assert
            var f = Assert.IsAssignableFrom <FilteringSpecimenBuilder>(actual);

            Assert.Equal(expected, f.Specification);
        }
Ejemplo n.º 9
0
        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
        }
Ejemplo n.º 10
0
        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
        }
Ejemplo n.º 11
0
        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
        }
Ejemplo n.º 12
0
        internal static FilteringSpecimenBuilder ShouldSpecify <T>(this FilteringSpecimenBuilder filter)
        {
            var orSpec = Assert.IsAssignableFrom <OrRequestSpecification>(filter.Specification);

            var seedSpec = Assert.IsAssignableFrom <SeedRequestSpecification>(orSpec.Specifications.First());

            Assert.Equal(typeof(T), seedSpec.TargetType);

            var typeSpec = Assert.IsAssignableFrom <ExactTypeSpecification>(orSpec.Specifications.Skip(1).First());

            Assert.Equal(typeof(T), typeSpec.TargetType);

            return(filter);
        }
        public void ComposeSingleItemReturnsCorrectResult()
        {
            // Arrange
            var dummyBuilder       = new DelegatingSpecimenBuilder();
            var dummySpecification = new DelegatingRequestSpecification();
            var sut = new FilteringSpecimenBuilder(dummyBuilder, dummySpecification);
            // Act
            var expected = new DelegatingSpecimenBuilder();
            var actual   = sut.Compose(new[] { expected });
            // Assert
            var f = Assert.IsAssignableFrom <FilteringSpecimenBuilder>(actual);

            Assert.Equal(expected, f.Builder);
        }
Ejemplo n.º 14
0
        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 CreateReturnsCorrectResultWhenSpecificationIsNotSatisfied()
        {
            // Arrange
            var spec = new DelegatingRequestSpecification {
                OnIsSatisfiedBy = r => false
            };
            var dummyBuilder = new DelegatingSpecimenBuilder();
            var sut          = new FilteringSpecimenBuilder(dummyBuilder, spec);
            var request      = new object();
            // Act
            var dummyContainer = new DelegatingSpecimenContext();
            var result         = sut.Create(request, dummyContainer);
            // Assert
            var expectedResult = new NoSpecimen();

            Assert.Equal(expectedResult, result);
        }
Ejemplo n.º 16
0
        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()
        {
            // Arrange
            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);
            // Act
            var dummyContainer = new DelegatingSpecimenContext();

            sut.Create(expectedRequest, dummyContainer);
            // Assert
            Assert.True(verified, "Mock verified");
        }
        public void CreatePassesCorrectParametersToDecoratedBuilder()
        {
            // Arrange
            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);

            // Act
            sut.Create(expectedRequest, expectedContainer);
            // Assert
            Assert.True(verified, "Mock verified");
        }
Ejemplo n.º 19
0
        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 CreateReturnsCorrectResultWhenFilterAllowsRequestThrough()
        {
            // Arrange
            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);
            // Act
            var dummyRequest   = new object();
            var dummyContainer = new DelegatingSpecimenContext();
            var result         = sut.Create(dummyRequest, dummyContainer);

            // Assert
            Assert.Equal(expectedResult, result);
        }
        public void ComposeReturnsCorrectResult()
        {
            // Arrange
            var dummyBuilder       = new DelegatingSpecimenBuilder();
            var dummySpecification = new DelegatingRequestSpecification();
            var sut = new FilteringSpecimenBuilder(dummyBuilder, dummySpecification);
            // Act
            var expectedBuilders = new[]
            {
                new DelegatingSpecimenBuilder(),
                new DelegatingSpecimenBuilder(),
                new DelegatingSpecimenBuilder()
            };
            var actual = sut.Compose(expectedBuilders);
            // Assert
            var f         = Assert.IsAssignableFrom <FilteringSpecimenBuilder>(actual);
            var composite = Assert.IsAssignableFrom <CompositeSpecimenBuilder>(f.Builder);

            Assert.True(expectedBuilders.SequenceEqual(composite));
        }
Ejemplo n.º 22
0
        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
        }
Ejemplo n.º 23
0
        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
        }
Ejemplo n.º 24
0
        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
        }