public void CreateAnonymousOnPostprocessComposerReturnsCorrectResult()
        {
            // Fixture setup
            var expectedResult = new DateTime(2010, 5, 31, 14, 52, 19);
            var specimenBuilder = new DelegatingSpecimenBuilder();
            specimenBuilder.OnCreate = (r, c) =>
            {
                Assert.NotNull(c);
                Assert.Equal(new SeededRequest(typeof(DateTime), default(DateTime)), r);
                return expectedResult;
            };

            var composer = new DelegatingComposer<DateTime> { OnCreate = specimenBuilder.OnCreate };
            // Exercise system
            var result = composer.CreateAnonymous();
            // Verify outcome
            Assert.Equal(expectedResult, result);
            // Teardown
        }
        public void CreateAnonymousOnPostprocessComposerReturnsCorrectResult()
        {
            // Arrange
            var expectedResult  = new DateTime(2010, 5, 31, 14, 52, 19);
            var specimenBuilder = new DelegatingSpecimenBuilder();

            specimenBuilder.OnCreate = (r, c) =>
            {
                Assert.NotNull(c);
                Assert.Equal(new SeededRequest(typeof(DateTime), default(DateTime)), r);
                return(expectedResult);
            };

            var composer = new DelegatingComposer <DateTime> {
                OnCreate = specimenBuilder.OnCreate
            };
            // Act
            var result = composer.CreateAnonymous();

            // Assert
            Assert.Equal(expectedResult, result);
        }
        public void CreateAnonymousOnPostprocessComposerReturnsCorrectResult()
        {
            // Fixture setup
            var expectedResult  = new DateTime(2010, 5, 31, 14, 52, 19);
            var specimenBuilder = new DelegatingSpecimenBuilder();

            specimenBuilder.OnCreate = (r, c) =>
            {
                Assert.NotNull(c);
                Assert.Equal(new SeededRequest(typeof(DateTime), default(DateTime)), r);
                return(expectedResult);
            };

            var composer = new DelegatingComposer <DateTime> {
                OnCompose = () => specimenBuilder
            };
            // Exercise system
            var result = composer.CreateAnonymous();

            // Verify outcome
            Assert.Equal(expectedResult, result);
            // Teardown
        }
        public void CreateaSeededAnonymousOnSpecimenBuilderComposerReturnsCorrectResult()
        {
            // Fixture setup
            var seed            = new Version(1, 1);
            var expectedResult  = new Version(2, 0);
            var specimenBuilder = new DelegatingSpecimenBuilder();

            specimenBuilder.OnCreate = (r, c) =>
            {
                Assert.NotNull(c);
                Assert.Equal(new SeededRequest(typeof(Version), seed), r);
                return(expectedResult);
            };

            var composer = new DelegatingComposer {
                OnCompose = () => specimenBuilder
            };
            // Exercise system
            var result = composer.CreateAnonymous(seed);

            // Verify outcome
            Assert.Equal(expectedResult, result);
            // Teardown
        }
        public void CreateaSeededAnonymousOnSpecimenBuilderComposerReturnsCorrectResult()
        {
            // Fixture setup
            var seed = new Version(1, 1);
            var expectedResult = new Version(2, 0);
            var specimenBuilder = new DelegatingSpecimenBuilder();
            specimenBuilder.OnCreate = (r, c) =>
                {
                    Assert.NotNull(c);
                    Assert.Equal(new SeededRequest(typeof(Version), seed), r);
                    return expectedResult;
                };

            var composer = new DelegatingComposer { OnCompose = () => specimenBuilder };
            // Exercise system
            var result = composer.CreateAnonymous(seed);
            // Verify outcome
            Assert.Equal(expectedResult, result);
            // Teardown
        }