示例#1
0
            public void NonNullEnumerable_ShouldOverwriteWithEnumerableCombinedWithNewElement()
            {
                // arrange
                var builderMock = new Mock <IDynamicBuilder <TestClass> >();

                builderMock.Setup(e => e.IsOverwritten(nameof(TestClass.EnumerableProperty))).Returns(true);
                builderMock
                .Setup(e => e.GetOverwrittenValue(nameof(TestClass.EnumerableProperty)))
                .Returns(new List <int> {
                    1, 2
                });
                int minValue = 1;

                builderMock.Setup(e => e.IsOverwritten(nameof(TestClass.MinValueProperty))).Returns(true);
                builderMock.Setup(e => e.GetOverwrittenValue(nameof(TestClass.MinValueProperty))).Returns(minValue);
                int expectedValue = minValue + 1;

                // act
                var builder = DynamicBuilderExtensions.WithBuilderDependentElement(builderMock.Object, e => e.EnumerableProperty, obj => obj.GetOverwrittenValue(e => e.MinValueProperty) + 1);

                // assert
                builderMock.Verify(e => e.Overwrite(nameof(TestClass.EnumerableProperty), It.Is <IEnumerable <int> >(en => en.SequenceEqual(new List <int> {
                    1, 2, expectedValue
                }))), Times.Once);
            }
示例#2
0
            public void NullPropertyExpression_ShouldThrow()
            {
                // arrange
                var builderMock = new Mock <IDynamicBuilder <TestClass> >();

                // act
                Action withBuilderDependentElement = () => DynamicBuilderExtensions.WithBuilderDependentElement(builderMock.Object, null, p => 1);

                // assert
                withBuilderDependentElement.Should().Throw <ArgumentNullException>();
            }
示例#3
0
            public void NullGetElement_ShouldThrow()
            {
                // arrange
                var builderMock = new Mock <IDynamicBuilder <TestClass> >();

                // act
                Action withBuilderDependentElement = () => DynamicBuilderExtensions.WithBuilderDependentElement(builderMock.Object, e => e.EnumerableProperty, null);

                // assert
                withBuilderDependentElement.Should().Throw <ArgumentNullException>();
            }
示例#4
0
            public void NullBuilder_ShouldThrow()
            {
                // arrange
                IDynamicBuilder <TestClass> builder = null;

                // act
                Action withBuilderDependentElement = () => DynamicBuilderExtensions.WithBuilderDependentElement(builder, e => e.EnumerableProperty, p => 1);

                // assert
                withBuilderDependentElement.Should().Throw <ArgumentNullException>();
            }
示例#5
0
            public void ExpressionIsMethodCall_ShouldThrow()
            {
                // arrange
                var builderMock = new Mock <IDynamicBuilder <TestClass> >();

                // act
                Action withBuilderDependentElement = () => DynamicBuilderExtensions.WithBuilderDependentElement(builderMock.Object, e => e.EnumerableFunction(), p => 1);

                // assert
                var exception = withBuilderDependentElement.Should().Throw <ArgumentException>().And;

                exception.Data[Errors.ErrorCodeExceptionDataKey].Should().Be(Errors.OnlyMemberAccessExpressionAreAllowed.Code);
            }