public void Verify()
            {
                var ret = EventBindingExtension.FollowPropertyPath(new DummyTarget {
                    IsEnabled = true
                }, "IsEnabled");

                Assert.NotNull(ret);
                Assert.Equal("True", ret.ToString());
            }
            public void Verify_FollowProperty()
            {
                var ret = EventBindingExtension.FollowPropertyPath(new DummyTarget {
                    Source = new DummySource {
                        Id = 2
                    }
                }, "Source.Id");

                Assert.NotNull(ret);
                Assert.Equal("2", ret.ToString());
            }
            public void InvalidPath_Should_ThrowsException2()
            {
                var ex = Assert.Throws <NullReferenceException>(() => EventBindingExtension.FollowPropertyPath(new DummyTarget(), "IsVisible"));

                Assert.Equal("property null", ex.Message);
            }
            public void PathNull_Should_ThrowsException()
            {
                var ex = Assert.Throws <ArgumentNullException>(() => EventBindingExtension.FollowPropertyPath(new DummyTarget(), null));

                Assert.Equal("path null", ex.ParamName);
            }