Beispiel #1
0
        public void IgnoresFieldsContainingByType()
        {
            var calculator = new DiffCalculator(ignoreFieldsContainingByType: new Dictionary<Type, string[]> { { typeof(SlightlyDifferentObject), new[] { "String" } } });

            var a = new SlightlyDifferentObject(secondString: "hi");
            var b = new SlightlyDifferentObject(secondString: "there");

            var resultObject = calculator.Diff(a, b);

            Assert.True(resultObject.ValuesMatch);
        }
Beispiel #2
0
        public void IgnoresFieldsContaining()
        {
            var calculator = new DiffCalculator(
    ignoreFieldsContaining: new[] { "String" });

            var a = new SlightlyDifferentObject(secondString: "hi");
            var b = new SlightlyDifferentObject(secondString: "there");

            var resultObject = calculator.Diff(a, b);

            Assert.True(resultObject.ValuesMatch);
        }
Beispiel #3
0
        public void Intersect_YieldsOnlyCommonFields()
        {
            var identicalStrings = "These strings are identical";
            var identicalNumber = 0.000089;

            var baseObj = new GenericDynamicObject(
                num: identicalNumber,
                pubString: identicalStrings,
                secondString: identicalStrings);

            var evaluatedObject = new SlightlyDifferentObject(
                num: identicalNumber,
                pubString: identicalStrings,
                secondString: identicalStrings);

            var result = _calculator.Intersect(
                baseObj: baseObj,
                evaluated: evaluatedObject);

            Assert.Equal(
                expected: 2,
                actual: result.Count);
        }
Beispiel #4
0
        public void MutuallyExclusive_EqualityReflectedAcrossDifferentObjects()
        {
            var identicalStrings = "These strings are identical";
            var notIdenticalString = "These strings are not identical";
            var identicalNumber = 0.000089;
            var identicalNumberOffset = 0.000000000000123;

            var baseObj = new GenericDynamicObject(
                num: identicalNumber,
                pubString: identicalStrings,
                secondString: identicalStrings);

            var evaluatedObject = new SlightlyDifferentObject(
                num: identicalNumber + identicalNumberOffset,
                pubString: notIdenticalString,
                secondString: notIdenticalString);

            var result = _calculator.MutuallyExclusive(
                baseObj: baseObj,
                evaluated: evaluatedObject);

            Assert.Equal(
                expected: 1,
                actual: result.Count(n => n.BaseValue!= null));

            Assert.Equal(
                expected: 1,
                actual: result.Count(n => n.EvaluatedValue != null));
        }
Beispiel #5
0
        public void GetExclusiveFields_YieldsOnlyExclusiveFields()
        {
            var baseObj = new GenericDynamicObject();
            var evaluatedObject = new SlightlyDifferentObject();

            var result = _calculator.GetExclusiveFields(baseObj, evaluatedObject);

            Assert.True(result.ToList()
                .Any(n => string.Equals(n.Name, "SecondaryString")));
        }