public void SutIsExpansion()
        {
            // Arrange
            var dummyIndex = 0;
            // Act
            var sut = new IndexedReplacement <T>(dummyIndex);

            // Assert
            Assert.IsAssignableFrom <IExpansion <T> >(sut);
        }
        public void ReplacementIndexIsCorrectWhenUsingEnumerableConstructor(int expectedIndex)
        {
            // Arrange
            var sut = new IndexedReplacement <T>(expectedIndex, Enumerable.Empty <T>());
            // Act
            int result = sut.ReplacementIndex;

            // Assert
            Assert.Equal(expectedIndex, result);
        }
Example #3
0
        public void ReplacementIndexIsCorrectWhenUsingEnumerableConstructor(int expectedIndex)
        {
            // Fixture setup
            var sut = new IndexedReplacement <T>(expectedIndex, Enumerable.Empty <T>());
            // Exercise system
            int result = sut.ReplacementIndex;

            // Verify outcome
            Assert.Equal(expectedIndex, result);
            // Teardown
        }
Example #4
0
        public void SutIsExpansion()
        {
            // Fixture setup
            var dummyIndex = 0;
            // Exercise system
            var sut = new IndexedReplacement <T>(dummyIndex);

            // Verify outcome
            Assert.IsAssignableFrom <IExpansion <T> >(sut);
            // Teardown
        }
        private static IndexedReplacement <object> RecreateExpansion(
            ISpecimenBuilder specimenBuilder,
            IMethod method,
            IndexedReplacement <object> oldExpansion)
        {
            var context = new SpecimenContext(specimenBuilder);

            return(new IndexedReplacement <object>(
                       oldExpansion.ReplacementIndex,
                       method.Parameters.Select(p => context.Resolve(p))));
        }
        public void SourceIsCorrectWhenUsingArrayConstructor()
        {
            // Arrange
            var dummyIndex = 0;
            var source     = Enumerable.Range(1, 3).Select(i => this.CreateItem()).ToArray();
            var sut        = new IndexedReplacement <T>(dummyIndex, source);
            // Act
            IEnumerable <T> result = sut.Source;

            // Assert
            Assert.True(source.SequenceEqual(result));
        }
Example #7
0
        public void SourceIsCorrectWhenUsingArrayConstructor()
        {
            // Fixture setup
            var dummyIndex = 0;
            var source     = Enumerable.Range(1, 3).Select(i => this.CreateItem()).ToArray();
            var sut        = new IndexedReplacement <T>(dummyIndex, source);
            // Exercise system
            IEnumerable <T> result = sut.Source;

            // Verify outcome
            Assert.True(source.SequenceEqual(result));
            // Teardown
        }
        public void ExpandReturnsCorrectResult(int replacementIndex)
        {
            // Arrange
            var source = Enumerable.Range(1, 3).Select(i => this.CreateItem()).ToList();
            var sut    = new IndexedReplacement <T>(replacementIndex, source);
            // Act
            var replacementValue = this.CreateItem();
            var result           = sut.Expand(replacementValue);
            // Assert
            var expected = source.ToList();

            expected[replacementIndex] = replacementValue;
            Assert.True(expected.SequenceEqual(result));
        }
Example #9
0
        public void ExpandReturnsCorrectResult(int replacementIndex)
        {
            // Fixture setup
            var source = Enumerable.Range(1, 3).Select(i => this.CreateItem()).ToList();
            var sut    = new IndexedReplacement <T>(replacementIndex, source);
            // Exercise system
            var replacementValue = this.CreateItem();
            var result           = sut.Expand(replacementValue);
            // Verify outcome
            var expected = source.ToList();

            expected[replacementIndex] = replacementValue;
            Assert.True(expected.SequenceEqual(result));
            // Teardown
        }
        private void Verify(IMethod method, bool isReturnValueIterator)
        {
            var parameters = (from pi in method.Parameters
                              select this.Builder.CreateAnonymous(GuardClauseAssertion.GetParameterType(pi))).ToList();

            var i = 0;
            foreach (var pi in method.Parameters)
            {
                var expansion = new IndexedReplacement<object>(i++, parameters);

                var command = new MethodInvokeCommand(method, expansion, pi);
                var unwrapper = new ReflectionExceptionUnwrappingCommand(command);
                if (isReturnValueIterator)
                {
                    var iteratorDecorator = new IteratorMethodInvokeCommand(unwrapper);
                    this.behaviorExpectation.Verify(iteratorDecorator);
                }
                else
                    this.BehaviorExpectation.Verify(unwrapper);
            }
        }
        private void Verify(IMethod method, bool isReturnValueIterator)
        {
            var parameters = this.GetParameters(method);

            var i = 0;
            foreach (var pi in method.Parameters)
            {
                var expansion = new IndexedReplacement<object>(i++, parameters);

                var command = new MethodInvokeCommand(method, expansion, pi);
                var unwrapper = new ReflectionExceptionUnwrappingCommand(command);
                if (isReturnValueIterator)
                {
                    var iteratorDecorator = new IteratorMethodInvokeCommand(unwrapper);
                    this.behaviorExpectation.Verify(iteratorDecorator);
                }
                else
                    this.BehaviorExpectation.Verify(unwrapper);
            }
        }