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-24 22:25:44 +0000
commitebb24b7edd2b297f259eadfa4686e03c96504f1d (patch)
tree2f9934e501f366707a72994acb3bf354f9a97606 /Xamarin.Forms.Core.UnitTests
parent4b19d49aa228330af37cee8c4d4fe7097eaf608d (diff)
downloadxamarin-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.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()