diff options
Diffstat (limited to 'Xamarin.Forms.Core.UnitTests')
-rw-r--r-- | Xamarin.Forms.Core.UnitTests/BindableObjectUnitTests.cs | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/Xamarin.Forms.Core.UnitTests/BindableObjectUnitTests.cs b/Xamarin.Forms.Core.UnitTests/BindableObjectUnitTests.cs index 861d9af1..9db091e5 100644 --- a/Xamarin.Forms.Core.UnitTests/BindableObjectUnitTests.cs +++ b/Xamarin.Forms.Core.UnitTests/BindableObjectUnitTests.cs @@ -123,6 +123,36 @@ namespace Xamarin.Forms.Core.UnitTests Assert.AreEqual(count, 1); } + class MockVMEquals { + public string Key { get; set; } + public string Text { get; set; } + public override bool Equals(object obj) + { + var other = obj as MockVMEquals; + if (other == null) + return false; + return Key == other.Key; + } + + public override int GetHashCode() + { + return base.GetHashCode(); + } + } + + [Test] + //https://bugzilla.xamarin.com/show_bug.cgi?id=59507 + public void BindingContextChangedCompareReferences() + { + var mock = new MockBindable(); + mock.BindingContext = new MockVMEquals { Key = "Foo", Text = "Foo" }; + mock.BindingContextChanged += (sender, args) => Assert.Pass(); + + mock.BindingContext = new MockVMEquals { Key = "Foo", Text = "Bar" }; + + Assert.Fail("The BindingContextChanged event was not fired."); + } + [Test] public void ParentAndChildBindingContextChanged() { |