diff options
author | E.Z. Hart <hartez@users.noreply.github.com> | 2017-01-24 15:25:44 -0700 |
---|---|---|
committer | Rui Marinho <me@ruimarinho.net> | 2017-01-24 22:25:44 +0000 |
commit | ebb24b7edd2b297f259eadfa4686e03c96504f1d (patch) | |
tree | 2f9934e501f366707a72994acb3bf354f9a97606 /Xamarin.Forms.Core.UnitTests | |
parent | 4b19d49aa228330af37cee8c4d4fe7097eaf608d (diff) | |
download | xamarin-forms-ebb24b7edd2b297f259eadfa4686e03c96504f1d.tar.gz xamarin-forms-ebb24b7edd2b297f259eadfa4686e03c96504f1d.tar.bz2 xamarin-forms-ebb24b7edd2b297f259eadfa4686e03c96504f1d.zip |
Fix overeager subscription cleanup (#712)
Diffstat (limited to 'Xamarin.Forms.Core.UnitTests')
-rw-r--r-- | Xamarin.Forms.Core.UnitTests/MessagingCenterTests.cs | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/Xamarin.Forms.Core.UnitTests/MessagingCenterTests.cs b/Xamarin.Forms.Core.UnitTests/MessagingCenterTests.cs index ae16fced..3cd91ed7 100644 --- a/Xamarin.Forms.Core.UnitTests/MessagingCenterTests.cs +++ b/Xamarin.Forms.Core.UnitTests/MessagingCenterTests.cs @@ -319,6 +319,24 @@ namespace Xamarin.Forms.Core.UnitTests Assert.True(success); // TestCallbackSource.SuccessCallback() should be invoked to make success == true } + [Test] + public void MultipleSubscribersOfTheSameClass() + { + var sub1 = new object(); + var sub2 = new object(); + + string args2 = null; + + const string message = "message"; + + MessagingCenter.Subscribe<MessagingCenterTests, string>(sub1, message, (sender, args) => { }); + MessagingCenter.Subscribe<MessagingCenterTests, string>(sub2, message, (sender, args) => args2 = args); + MessagingCenter.Unsubscribe<MessagingCenterTests, string>(sub1, message); + + MessagingCenter.Send(this, message, "Testing"); + Assert.That(args2, Is.EqualTo("Testing"), "unsubscribing sub1 should not unsubscribe sub2"); + } + class TestSubcriber { public void SetSuccess() |