public void RaiseOnEqual()
        {
            string foo  = "foo";
            var    mock = new MockBindable();

            mock.SetValue(MockBindable.TextProperty, foo);

            bool changing = false;

            mock.PropertyChanging += (o, e) => {
                Assert.That(e.PropertyName, Is.EqualTo(MockBindable.TextProperty.PropertyName));
                changing = true;
            };

            bool changed = true;

            mock.PropertyChanged += (o, e) => {
                Assert.That(e.PropertyName, Is.EqualTo(MockBindable.TextProperty.PropertyName));
                changed = true;
            };

            mock.SetValueCore(MockBindable.TextProperty, foo,
                              BindableObject.SetValueFlags.ClearOneWayBindings | BindableObject.SetValueFlags.ClearDynamicResource | BindableObject.SetValueFlags.RaiseOnEqual);

            Assert.That(changing, Is.True, "PropertyChanging event did not fire");
            Assert.That(changed, Is.True, "PropertyChanged event did not fire");
        }