public void GetPropertyNameTest()
        {
            var test = new ExtensionTestClass();

            Assert.AreEqual("StringProperty", test.GetPropertyName(t => t.StringProperty));
            Assert.AreEqual("ObjectProperty", test.GetPropertyName(t => t.ObjectProperty));
            Assert.AreEqual("IntProperty", test.GetPropertyName(t => t.IntProperty));
            Assert.AreEqual("BoolProperty", test.GetPropertyName(t => t.BoolProperty));
            Assert.AreEqual("NullableIntProperty", test.GetPropertyName(t => t.NullableIntProperty));
            Assert.AreEqual("NullableBoolProperty", test.GetPropertyName(t => t.NullableBoolProperty));
        }
        public void RaisePropertyChangedTest()
        {
            var  test        = new ExtensionTestClass();
            bool eventRaised = false;

            test.PropertyChanged += (s, e) =>
            {
                Assert.AreEqual("NullableIntProperty", e.PropertyName);
                eventRaised = true;
            };
            test.RaisePropertyChanged(t => t.NullableIntProperty);
            Assert.IsTrue(eventRaised);
        }