public void StandardBehaviour(IObjectComparerPlugin plugin, object expected, object actual, object expectedDifference)
        {
            var result = plugin.TryCompare("value", expected, actual);

            Assert.Equal(ComparisonResultType.Different, result.ComparisonResultType);
            Assert.Equal(result.Payload, expectedDifference);
        }
        public void CheckNumericOverflowBehaviour(IObjectComparerPlugin plugin, object expected, object actual, object expectedDifference)
        {
            var output = plugin.TryCompare("key", expected, actual);

            Assert.Equal(ComparisonResultType.Different, output.ComparisonResultType);
            Assert.Equal(expectedDifference, output.Payload);
        }
        public void CheckNullsAreTreatedAsZeros_Equality(IObjectComparerPlugin plugin, object value)
        {
            {
                var output = plugin.TryCompare("key", value, null);

                Assert.Equal(ComparisonResultType.Equal, output.ComparisonResultType);
            }

            {
                var output = plugin.TryCompare("key", null, value);

                Assert.Equal(ComparisonResultType.Equal, output.ComparisonResultType);
            }
        }
예제 #4
0
        public FilterPlugin(IObjectComparerPlugin underlyingPlugin, Func <string, object, object, bool> canHandleFunc)
        {
            if (underlyingPlugin == null)
            {
                throw new ArgumentNullException(nameof(underlyingPlugin));
            }

            if (canHandleFunc == null)
            {
                throw new ArgumentNullException(nameof(canHandleFunc));
            }

            this.UnderlyingPlugin = underlyingPlugin;
            this.CanHandleFunc    = canHandleFunc;
        }
        public void CheckNullsAreTreatedAsZeros_Differences(IObjectComparerPlugin plugin, object value, object expectedDifferenceWhenExpectedIsNull, object expectedDifferenceWhenActualIsNull)
        {
            {
                var output = plugin.TryCompare("key", value, null);

                Assert.Equal(ComparisonResultType.Different, output.ComparisonResultType);
                Assert.NotNull(output.Payload);
                Assert.Equal(expectedDifferenceWhenActualIsNull, output.Payload);
            }

            {
                var output = plugin.TryCompare("key", null, value);

                Assert.Equal(ComparisonResultType.Different, output.ComparisonResultType);
                Assert.NotNull(output.Payload);
                Assert.Equal(expectedDifferenceWhenExpectedIsNull, output.Payload);
            }
        }