Beispiel #1
0
        public void Intersect_ListDisplaysAppropriateNumberOfEqualFields()
        {
            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 GenericDynamicObject(
                num: identicalNumber + identicalNumberOffset,
                pubString: identicalStrings,
                secondString: notIdenticalString);

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

            Assert.Equal(
                expected: 3,
                actual: result.Count(n => n.ValuesMatch));

            Assert.Equal(
                expected: 1,
                actual: result.Count(n => !n.ValuesMatch));
        }
        public void GetNonObjectFields_YieldsOnlyNonObjects()
        {
            var baseObj = new GenericDynamicObject(subobj: new SubObject("An Object"));
            var result = baseObj.GetNonObjectInstanceFields();

            Assert.Equal(
                expected: 3,
                actual: result.Count());
        }
Beispiel #3
0
        public void IsObjectField_DiscernsObject()
        {
            var baseObj = new GenericDynamicObject(subobj: new SubObject("derr"));

            var fields = _calculator.GetFields(baseObj);
            var result = _calculator.IsObjectField(
                field: fields.First(n => n.Name.Equals("SubObj")),
                obj: baseObj);

            Assert.True(result);
        }
Beispiel #4
0
        public void IsObjectField_DiscernsObject()
        {
            var baseObj = new GenericDynamicObject(subobj: new SubObject("derr"));

            var fields = baseObj.GetInstanceFields();
            var field = fields.First(n => n.Name.Equals("SubObj"));

            var result = baseObj.IsObjectField(field);

            Assert.True(result);
        }
Beispiel #5
0
        public void GetCorrelate_DoesNotPullEqualNameDifferentType()
        {
            var baseObj = new GenericDynamicObject();
            var evaluated = new AlmostGenericDynamicObject();

            var fields = _calculator.GetFields(baseObj);
            var result = _calculator.HasCorrelate(
                field: fields.First(n => n.Name.Equals("SecondaryString")),
                obj: evaluated);

            Assert.False(result);
        }
Beispiel #6
0
        public void Intersect_ListHasFieldsSet()
        {
            var basePublicString = "This is the base object";
            var evaluatedPublicString = "This is the evaluated object";

            var baseObj = new GenericDynamicObject(
                num: 10.0,
                pubString: basePublicString);

            var evaluatedObject = new GenericDynamicObject(
                num: 0.0,
                pubString: evaluatedPublicString);

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

            Assert.True(result.Any(
                  n => string.Equals(n.BaseValue, basePublicString)
                    && string.Equals(n.EvaluatedValue, evaluatedPublicString)));
        }
Beispiel #7
0
        public void DiffObjects_RecursesAppropriately()
        {
            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,
                subobj: new SubObject("I am equal"));

            var equalObj = new GenericDynamicObjectCopy(
                num: identicalNumber + identicalNumberOffset,
                pubString: identicalStrings,
                secondString: identicalStrings,
                subobj: new SubObject("I am equal"));

            var notEqualObj = new GenericDynamicObjectCopy(
                num: identicalNumber + identicalNumberOffset,
                pubString: identicalStrings,
                secondString: identicalStrings,
                subobj: new SubObject("I am not equal"));

            var equalResult = _calculator.DiffObjects(
                baseObj: baseObj,
                evaluated: equalObj);

            var notEqualResult = _calculator.DiffObjects(
                baseObj: baseObj,
                evaluated: notEqualObj);

            Assert.True(equalResult.ValuesMatch);
            Assert.False(notEqualResult.ValuesMatch);
        }
Beispiel #8
0
        public void DiffObjects_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 GenericDynamicObjectCopy(
                num: identicalNumber + identicalNumberOffset,
                pubString: identicalStrings,
                secondString: identicalStrings);

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

            Assert.True(result.ValuesMatch);
        }
Beispiel #9
0
        public void DiffObjects_ShowsObjectsAreTrueIfTheyMatch()
        {
            var identicalString = "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: identicalString,
                secondString: identicalString);

            var evaluatedObject = new GenericDynamicObject(
                num: identicalNumber + identicalNumberOffset,
                pubString: identicalString,
                secondString: identicalString);

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

            Assert.True(result.ValuesMatch);
        }
Beispiel #10
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 #11
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 #12
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")));
        }
Beispiel #13
0
        public void GetObjectFields_YieldsOnlyObjects()
        {
            var baseObj = new GenericDynamicObject(subobj: new SubObject("An Object"));
            var result = _calculator.GetOjbectFields(baseObj);

            Assert.Equal(
                expected: 1,
                actual: result.Count());
        }