public void Customize(IFixture fixture)
        {
            var stableRelay =
                new StableFiniteSequenceRelay();

            fixture.Customizations.Add(stableRelay);
        }
예제 #2
0
        public void CreateFiltersOmitSpecimenInstances()
        {
            // Fixture setup
            var request     = new object();
            var count       = 3;
            var manyRequest = new FiniteSequenceRequest(request, count);

            var results = new object[]
            {
                new object(),
                new OmitSpecimen(),
                new object()
            };
            var q       = new Queue <object>(results);
            var context = new DelegatingSpecimenContext
            {
                OnResolve = r => request.Equals(r) ? q.Dequeue() : new NoSpecimen(r)
            };

            var sut = new StableFiniteSequenceRelay();
            // Exercise system
            var actual = sut.Create(manyRequest, context);
            // Verify outcome
            var iter = Assert.IsAssignableFrom <IEnumerable <object> >(actual);

            Assert.True(
                results.Where(x => !(x is OmitSpecimen)).SequenceEqual(iter),
                "Actual sequence is not equal to expected sequence.");
            // Teardown
        }
예제 #3
0
        public void SutIsSpecimenBuilder()
        {
            // Arrange
            // Act
            var sut = new StableFiniteSequenceRelay();

            // Assert
            Assert.IsAssignableFrom <ISpecimenBuilder>(sut);
        }
예제 #4
0
        public void SutIsSpecimenBuilder()
        {
            // Fixture setup
            // Exercise system
            var sut = new StableFiniteSequenceRelay();

            // Verify outcome
            Assert.IsAssignableFrom <ISpecimenBuilder>(sut);
            // Teardown
        }
예제 #5
0
        public void CreateWithNullContextThrows()
        {
            // Arrange
            var sut          = new StableFiniteSequenceRelay();
            var dummyRequest = new object();

            // Act & assert
            Assert.Throws <ArgumentNullException>(() =>
                                                  sut.Create(dummyRequest, null));
        }
예제 #6
0
        public void CreateWithNullContextThrows()
        {
            // Fixture setup
            var sut          = new StableFiniteSequenceRelay();
            var dummyRequest = new object();

            // Exercise system and verify outcome
            Assert.Throws <ArgumentNullException>(() =>
                                                  sut.Create(dummyRequest, null));
            // Teardown
        }
예제 #7
0
        public void CreateWithInvalidRequestReturnsCorrectResult(object request)
        {
            // Arrange
            var sut = new StableFiniteSequenceRelay();
            // Act
            var dummyContext = new DelegatingSpecimenContext();
            var result       = sut.Create(request, dummyContext);
            // Assert
            var expectedResult = new NoSpecimen();

            Assert.Equal(expectedResult, result);
        }
예제 #8
0
        public void ManyIsStableWithCustomization()
        {
            var fixture     = new Fixture();
            var stableRelay = new StableFiniteSequenceRelay();

            fixture.Customizations.Add(stableRelay);

            var expected =
                fixture.CreateMany <string>();

            Assert.True(expected.SequenceEqual(expected));
        }
예제 #9
0
        public void CreateWithInvalidRequestReturnsCorrectResult(object request)
        {
            // Fixture setup
            var sut = new StableFiniteSequenceRelay();
            // Exercise system
            var dummyContext = new DelegatingSpecimenContext();
            var result       = sut.Create(request, dummyContext);
            // Verify outcome
            var expectedResult = new NoSpecimen(request);

            Assert.Equal(expectedResult, result);
            // Teardown
        }
        public void CreateWithAnonymousRequestReturnsCorrectResult()
        {
            // Fixture setup
            var sut     = new StableFiniteSequenceRelay();
            var request = new object();
            // Exercise system
            var dummyContext = new DelegatingSpecimenContext();
            var result       = sut.Create(request, dummyContext);

            // Verify outcome
#pragma warning disable 618
            var expectedResult = new NoSpecimen(request);
#pragma warning restore 618
            Assert.Equal(expectedResult, result);
            // Teardown
        }
예제 #11
0
        public void CreateReturnsStableSequence()
        {
            // Arrange
            var request     = new object();
            var count       = 3;
            var manyRequest = new FiniteSequenceRequest(request, count);

            var context = new DelegatingSpecimenContext {
                OnResolve = r => request.Equals(r) ? new object() : new NoSpecimen()
            };

            var sut = new StableFiniteSequenceRelay();
            // Act
            var result = sut.Create(manyRequest, context);
            // Assert
            var expected = Assert.IsAssignableFrom <IEnumerable <object> >(result);

            Assert.True(expected.SequenceEqual(expected));
        }
예제 #12
0
        public void CreateReturnsStableSequence()
        {
            // Fixture setup
            var request     = new object();
            var count       = 3;
            var manyRequest = new FiniteSequenceRequest(request, count);

            var context = new DelegatingSpecimenContext {
                OnResolve = r => request.Equals(r) ? new object() : new NoSpecimen(r)
            };

            var sut = new StableFiniteSequenceRelay();
            // Exercise system
            var result = sut.Create(manyRequest, context);
            // Verify outcome
            var expected = Assert.IsAssignableFrom <IEnumerable <object> >(result);

            Assert.True(expected.SequenceEqual(expected));
            // Teardown
        }