summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Core.UnitTests
diff options
context:
space:
mode:
authorE.Z. Hart <hartez@users.noreply.github.com>2017-01-24 15:25:44 -0700
committerRui Marinho <me@ruimarinho.net>2017-01-30 23:16:54 +0000
commit91ffd9623af6acd40a0881ec6defbd027620204b (patch)
tree73fbf15bbd98b84078f8b187b5772f45b0bfb2c3 /Xamarin.Forms.Core.UnitTests
parent70c2421ed080403065e8ae7bb34dd13049e15483 (diff)
downloadxamarin-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.cs18
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()