public void GetPropertyValue_MemberExpression_IsNotNull()
 {
     Expression<Func<FakeTestItem, object>> expression = item => item.TestInt;
     var fakeTestItem = new FakeTestItem { TestInt = 32 };
     var actual = fakeTestItem.GetPropertyValue(expression.GetPropertyName());
     Assert.AreEqual(32, actual);
 }
 public void GetPropertyValue_ExistingProperty_MatchesExpected()
 {
     var propertyInfo = typeof(FakeTestItem).GetProperty("TestString");
     var entity = new FakeTestItem { TestInt = 12, TestString = "Test" };
     const string Expected = "Test";
     var actual = propertyInfo.GetPropertyValue(entity);
     Assert.AreEqual(Expected, Convert.ToString(actual, CultureInfo.CurrentCulture));
 }
Esempio n. 3
0
        public void Equals_RightNullWithParameters_ReturnsFalse()
        {
            var valueA = new FakeTestItem {
                TestDateTime = DateTime.Now, TestInt = 290, TestString = "blah"
            };
            var actual = Evaluate.Equals(valueA, null, item => item.TestDateTime, item => item.TestInt, item => item.TestString);

            Assert.IsFalse(actual);
        }
Esempio n. 4
0
        public void Equals_LeftNull_ReturnsFalse()
        {
            var valueB = new FakeTestItem {
                TestDateTime = DateTime.Now, TestInt = 290, TestString = "blah"
            };
            var actual = Evaluate.Equals(null, valueB);

            Assert.IsFalse(actual);
        }
Esempio n. 5
0
        public void IsNull_SetValue_ReturnsFalse()
        {
            var value = new FakeTestItem {
                TestInt = 1, TestString = "blah"
            };
            var actual = Evaluate.IsDefaultValue(value);

            Assert.AreEqual(false, actual);
        }
 public void GetDifferences_AllValuesEqual_ReturnsEmpty()
 {
     var baseline = new FakeTestItem { TestInt = 20, TestString = "TestString" };
     var comparison = new FakeTestItem { TestInt = 20, TestString = "TestString" };
     var propertiesToCompare = Array.Empty<string>();
     IEnumerable<PropertyComparisonResult> expected = new List<PropertyComparisonResult>();
     var actual = baseline.GetDifferences(comparison, propertiesToCompare);
     CollectionAssert.AreEqual(expected.ToList(), actual.ToList());
 }
Esempio n. 7
0
        public void GetHashCode_TestObject_ReturnsHashCode()
        {
            var value = new FakeTestItem {
                TestInt = 23252, TestString = "SomeString"
            };
            var expected = value.GetHashCode();
            var actual   = Evaluate.GetHashCode(value);

            Assert.AreEqual(expected, actual);
        }
Esempio n. 8
0
        public void Equals_TestObjectsWithEqualProperties_ReturnsTrue()
        {
            var valueA = new FakeTestItem {
                TestString = "test", TestInt = 1
            };
            var valueB = new FakeTestItem {
                TestString = "test", TestInt = 1
            };
            var actual = Evaluate.Equals(valueA, valueB);

            Assert.IsTrue(actual);
        }
Esempio n. 9
0
        public void Equals_TestObjectsWithSpecificEqualProperties_ReturnsTrue()
        {
            var valueA = new FakeTestItem {
                TestString = "test", TestInt = 1, TestDateTime = DateTime.MinValue
            };
            var valueB = new FakeTestItem {
                TestString = "test", TestInt = 4, TestDateTime = DateTime.MinValue
            };
            var actual = Evaluate.Equals(valueA, valueB, o => o.TestString, o => o.TestDateTime);

            Assert.AreEqual(true, actual);
        }
Esempio n. 10
0
        public void GetDifferences_AllValuesDifferent_MatchesExpected()
        {
            var baseline = new FakeTestItem { TestInt = 20, TestString = "TestString" };
            var comparison = new FakeTestItem { TestInt = 21, TestString = "TestString2" };
            var propertiesToCompare = Array.Empty<string>();
            var expected = new List<PropertyComparisonResult>
                               {
                                   new PropertyComparisonResult("TestInt", 20, 21),
                                   new PropertyComparisonResult("TestString", "TestString", "TestString2")
                               };

            var actual = baseline.GetDifferences(comparison, propertiesToCompare).ToList();
            CollectionAssert.AreEqual(expected, actual);
        }
Esempio n. 11
0
        public void GetDifferences_AllValuesDifferentWithSpecifiedProperties_MatchesExpected()
        {
            var baseline = new FakeTestItem { TestDateTime = DateTime.MinValue, TestInt = 20, TestString = "TestString" };
            var comparison = new FakeTestItem { TestDateTime = DateTime.MaxValue, TestInt = 21, TestString = "TestString2" };
            var propertiesToCompare = new[] { "TestInt", "TestString" };
            IEnumerable<PropertyComparisonResult> expected = new List<PropertyComparisonResult>
                                                                 {
                                                                     new PropertyComparisonResult("TestInt", 20, 21),
                                                                     new PropertyComparisonResult("TestString", "TestString", "TestString2")
                                                                 };

            IEnumerable<PropertyComparisonResult> actual = baseline.GetDifferences(comparison, propertiesToCompare);
            CollectionAssert.AreEqual(expected.ToList(), actual.ToList());
        }
Esempio n. 12
0
        public void GenerateHashCode_WithSelectors_MatchesExpected()
        {
            var item = new FakeTestItem {
                TestDateTime = DateTime.Today, TestInt = 2342, TestString = "asdsdfa2342345"
            };
            IEnumerable <Func <FakeTestItem, object> > selectors = new Func <FakeTestItem, object>[]
            {
                dest => dest.TestDateTime,
                dest => dest.TestInt,
                dest => dest.TestString
            };

            var expected = new object[] { item.TestDateTime, item.TestInt, item.TestString }.Aggregate(
                0, (i, o) => (i * 397) + Evaluate.GetHashCode(o));

            var actual = Evaluate.GenerateHashCode(item, selectors);

            Assert.AreEqual(expected, actual);
        }
Esempio n. 13
0
        public void PopulateDictionary_TestObjectAllProperties_MatchesExpected()
        {
            var item = new FakeTestItem { TestDateTime = DateTime.Today, TestInt = 23, TestString = "Test String" };
            IDictionary<string, object> expected = new Dictionary<string, object>
                                                       {
                                                           { "{Item}", item },
                                                           { "TestDateTime", item.TestDateTime },
                                                           { "TestInt", item.TestInt },
                                                           { "TestList", item.TestList },
                                                           { "TestString", item.TestString }
                                                       };

            var actual = new Dictionary<string, object>();
            actual.PopulateDictionary(item);
            string Func(KeyValuePair<string, object> x) => $"{x.Key}={x.Value}";

            var expectedCollection = expected.Select(Func).ToList();
            var actualCollection = actual.Select(Func).ToList();
            CollectionAssert.AreEqual(expectedCollection, actualCollection);
        }
Esempio n. 14
0
        public void RecursiveEquals_UnequalObjectsByList_ReturnsFalse()
        {
            var valueA = new FakeTestItem {
                TestString = "test", TestInt = 1, TestDateTime = DateTime.MinValue
            };

            valueA.AddItem("Test1");
            valueA.AddItem("Test2");
            valueA.AddItem("Test3");

            var valueB = new FakeTestItem {
                TestString = "test", TestInt = 1, TestDateTime = DateTime.MinValue
            };

            valueB.AddItem("Test1");
            valueB.AddItem("Test2");
            valueB.AddItem("Test4");

            var actual = Evaluate.RecursiveEquals(valueA, valueB);

            Assert.IsFalse(actual);
        }