public void entity_with_initial_value_set_property_multiple_times_using_different_values_should_raise_propertyChanged_events_as_expected()
        {
            var expected = 3;
            var actual   = 0;

            var target = new MockEntity("initial value");

            target.PropertyChanged += (s, e) => actual++;

            target.FirstName = "Mauro";
            target.FirstName = "Foo";
            target.FirstName = "Foo";
            target.FirstName = "Mauro";

            actual.Should().Be.EqualTo(expected);
        }
        public void entity_property_set_on_property_with_cascade_notification_should_raise_all_expected_notifications()
        {
            var expected = 2;
            var actual   = 0;

            var expectedNotifications = new[] { "MainProperty", "SubProperty" };
            var actualNotifications   = new List <string>();

            var target = new MockEntity();

            target.PropertyChanged += (s, e) =>
            {
                actual++;
                actualNotifications.Add(e.PropertyName);
            };

            target.MainProperty = "foo...";

            actual.Should().Be.EqualTo(expected);
            actualNotifications.Should().Have.SameSequenceAs(expectedNotifications);
        }