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-30 23:16:54 +0000 |
commit | 91ffd9623af6acd40a0881ec6defbd027620204b (patch) | |
tree | 73fbf15bbd98b84078f8b187b5772f45b0bfb2c3 /Xamarin.Forms.Core.UnitTests | |
parent | 70c2421ed080403065e8ae7bb34dd13049e15483 (diff) | |
download | xamarin-forms-91ffd9623af6acd40a0881ec6defbd027620204b.tar.gz xamarin-forms-91ffd9623af6acd40a0881ec6defbd027620204b.tar.bz2 xamarin-forms-91ffd9623af6acd40a0881ec6defbd027620204b.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() |