public void GetPropertyValueByName()
        {
            var tc = new MyTestClass
            {
                StringValue = "CCCEEE",
                TestClass   = new MyTestClass
                {
                    StringValue = "internal value"
                }
            };

            ObjectExtensionsFunctions.GetPropertyValueByName <string>(tc, "StringValue").ShouldBe(tc.StringValue);
            ObjectExtensionsFunctions.GetPropertyValueByName <MyTestClass>(tc, "TestClass").ShouldBe(tc.TestClass);
        }
        public void GetPropertyValueByName_ThrowsOnNotExists()
        {
            var tc = new MyTestClass
            {
                StringValue = "CCCEEE",
                TestClass   = new MyTestClass
                {
                    StringValue = "internal value"
                }
            };

            Should.Throw <InvalidOperationException>(() => ObjectExtensionsFunctions.GetPropertyValueByName <string>(tc, "VVV"));
            Should.Throw <InvalidOperationException>(() => ObjectExtensionsFunctions.GetPropertyValueByName <MyTestClass>(tc, "testClass"));
        }
        public void GetPropertyValueOrDefaultByName_ReturnsDefault()
        {
            var tc = new MyTestClass
            {
                StringValue = "CCCEEE",
                TestClass   = new MyTestClass
                {
                    StringValue = "internal value"
                }
            };

            ObjectExtensionsFunctions.GetPropertyValueOrDefaultByName <string>(tc, "VVV").ShouldBe(default(string));
            ObjectExtensionsFunctions.GetPropertyValueOrDefaultByName <MyTestClass>(tc, "testClass").ShouldBe(default(MyTestClass));
        }
 public void IsOfType_ReturnsFalse()
 {
     ObjectExtensionsFunctions.IsOfType <string>(typeof(T1)).ShouldBeFalse();
     ObjectExtensionsFunctions.IsOfType(typeof(T1), typeof(string)).ShouldBeFalse();
 }
 public void IsOfType_ReturnsTrue()
 {
     ObjectExtensionsFunctions.IsOfType <T1>(typeof(T2)).ShouldBeTrue();
     ObjectExtensionsFunctions.IsOfType(typeof(T2), typeof(T1)).ShouldBeTrue();
 }