public void ViewModelMultipleAssignDifferentInstanceOfTheSameObjectReferencePropertyChangesShouldBeMore()
        {
            var valuePropertyViewModel = new ReferencePropertyViewModel();

            var propertyChanged = false;

            valuePropertyViewModel.PropertyChanged += (s, e) => propertyChanged = true;

            valuePropertyViewModel.Changed.Should().BeFalse();

            var value = new Foo {
                Id = 3
            };

            valuePropertyViewModel.Value = value;
            valuePropertyViewModel.Value.Should().BeSameAs(value);

            var value2 = new Foo {
                Id = 3
            };

            valuePropertyViewModel.Value = value2;
            valuePropertyViewModel.Value.Should().BeSameAs(value);

            valuePropertyViewModel.Changes.Should().Be(1);
            valuePropertyViewModel.Changed.Should().BeTrue();

            propertyChanged.Should().BeTrue();
        }
		public void ViewModelMultipleAssignDifferentInstanceOfTheSameObjectReferencePropertyChangesShouldBeMore()
		{
			var valuePropertyViewModel = new ReferencePropertyViewModel();

			var propertyChanged = false;

			valuePropertyViewModel.PropertyChanged += (s, e) => propertyChanged = true;

			valuePropertyViewModel.Changed.Should().Be.False();

			var value = new Foo { Id = 3 };
			valuePropertyViewModel.Value = value;
			valuePropertyViewModel.Value.Should().Be.SameInstanceAs(value);

			var value2 = new Foo { Id = 3 };
			valuePropertyViewModel.Value = value2;
			valuePropertyViewModel.Value.Should().Be.SameInstanceAs(value);

			valuePropertyViewModel.Changes.Should().Be.EqualTo(1);
			valuePropertyViewModel.Changed.Should().Be.True();

			propertyChanged.Should().Be.True();
		}