public void CorrectlyReturnsDynamicMemberNames_WhenSetViaSetValueMethod()
            {
                var     observableObject        = new CustomObject();
                dynamic dynamicObservableObject = observableObject;

                // Setting value via SetValue method.
                DateTime dt = DateTime.ParseExact("2016-01-01 01:01:01", "yyyy-MM-dd HH:mm:ss", null);

                observableObject.SetValue("Property1", "test");
                observableObject.SetValue("Property2", 100);
                observableObject.SetValue("Property3", 3.14F);
                observableObject.SetValue("Property4", 1.2M);
                observableObject.SetValue("Property5", dt);

                // Get dynamic member names and sort (we get keys from dictionary where order is unspecified, so it's better to sort by names).
                var memberNames = observableObject.GetMetaObject(Expression.Constant(observableObject)).GetDynamicMemberNames().ToList();

                memberNames.Sort();
                Assert.AreEqual(5, memberNames.Count);
                Assert.AreEqual("Property1", memberNames[0]);
                Assert.AreEqual("Property2", memberNames[1]);
                Assert.AreEqual("Property3", memberNames[2]);
                Assert.AreEqual("Property4", memberNames[3]);
                Assert.AreEqual("Property5", memberNames[4]);
            }
            public void CorrectlyReturnsDynamicMemberNames_WhenSetViaSetValueMethod()
            {
                var observableObject = new CustomObject();
                dynamic dynamicObservableObject = observableObject;

                // Setting value via SetValue method.
                DateTime dt = DateTime.ParseExact("2016-01-01 01:01:01", "yyyy-MM-dd HH:mm:ss", null);
                observableObject.SetValue("Property1", "test");
                observableObject.SetValue("Property2", 100);
                observableObject.SetValue("Property3", 3.14F);
                observableObject.SetValue("Property4", 1.2M);
                observableObject.SetValue("Property5", dt);

                // Get dynamic member names and sort (we get keys from dictionary where order is unspecified, so it's better to sort by names).
                var memberNames = observableObject.GetMetaObject(Expression.Constant(observableObject)).GetDynamicMemberNames().ToList();
                memberNames.Sort();
                Assert.AreEqual(5, memberNames.Count);
                Assert.AreEqual("Property1", memberNames[0]);
                Assert.AreEqual("Property2", memberNames[1]);
                Assert.AreEqual("Property3", memberNames[2]);
                Assert.AreEqual("Property4", memberNames[3]);
                Assert.AreEqual("Property5", memberNames[4]);
            }