Cirrious.MvvmCross.Plugins.Messenger.Test.MessengerHubTest.CountSubscriptionsForTagIsCorrect C# (CSharp) Method

CountSubscriptionsForTagIsCorrect() private method

private CountSubscriptionsForTagIsCorrect ( ) : void
return void
        public void CountSubscriptionsForTagIsCorrect()
        {
            var testTag1 = "TestTag1";
            var testTag2 = "TestTag2";
            var notExistingTag = "NotExistingTag";
            var messenger = new MvxMessengerHub();
            Assert.AreEqual(0, messenger.CountSubscriptionsForTag<MvxSubscriberChangeMessage>(null));
            Assert.AreEqual(0, messenger.CountSubscriptionsForTag<MvxSubscriberChangeMessage>(testTag1));
            Assert.AreEqual(0, messenger.CountSubscriptionsForTag<TestMessage>(testTag1));
            Assert.AreEqual(0, messenger.CountSubscriptionsForTag<TestMessage>(testTag2));
            Assert.AreEqual(0, messenger.CountSubscriptionsForTag<TestMessage>(notExistingTag));
            var changeToken = messenger.Subscribe<MvxSubscriberChangeMessage>(message => { });
            Assert.AreEqual(1, messenger.CountSubscriptionsForTag<MvxSubscriberChangeMessage>(null));
            Assert.AreEqual(0, messenger.CountSubscriptionsForTag<MvxSubscriberChangeMessage>(testTag1));
            Assert.AreEqual(0, messenger.CountSubscriptionsForTag<TestMessage>(testTag1));
            Assert.AreEqual(0, messenger.CountSubscriptionsForTag<TestMessage>(testTag2));
            Assert.AreEqual(0, messenger.CountSubscriptionsForTag<TestMessage>(notExistingTag));
            var token = messenger.Subscribe<TestMessage>(m =>
            {
                // stuff
            }, tag:testTag1);
            Assert.AreEqual(1, messenger.CountSubscriptionsForTag<MvxSubscriberChangeMessage>(null));
            Assert.AreEqual(0, messenger.CountSubscriptionsForTag<MvxSubscriberChangeMessage>(testTag1));
            Assert.AreEqual(1, messenger.CountSubscriptionsForTag<TestMessage>(testTag1));
            Assert.AreEqual(0, messenger.CountSubscriptionsForTag<TestMessage>(testTag2));
            Assert.AreEqual(0, messenger.CountSubscriptionsForTag<TestMessage>(notExistingTag));
            var token2 = messenger.Subscribe<TestMessage>(m =>
            {
                // stuff
            }, tag:testTag1);
            Assert.AreEqual(1, messenger.CountSubscriptionsForTag<MvxSubscriberChangeMessage>(null));
            Assert.AreEqual(0, messenger.CountSubscriptionsForTag<MvxSubscriberChangeMessage>(testTag1));
            Assert.AreEqual(2, messenger.CountSubscriptionsForTag<TestMessage>(testTag1));
            Assert.AreEqual(0, messenger.CountSubscriptionsForTag<TestMessage>(testTag2));
            Assert.AreEqual(0, messenger.CountSubscriptionsForTag<TestMessage>(notExistingTag));
            var token3 = messenger.Subscribe<TestMessage>(m =>
            {
                // stuff
            }, tag: testTag2);
            Assert.AreEqual(1, messenger.CountSubscriptionsForTag<MvxSubscriberChangeMessage>(null));
            Assert.AreEqual(0, messenger.CountSubscriptionsForTag<MvxSubscriberChangeMessage>(testTag1));
            Assert.AreEqual(2, messenger.CountSubscriptionsForTag<TestMessage>(testTag1));
            Assert.AreEqual(1, messenger.CountSubscriptionsForTag<TestMessage>(testTag2));
            Assert.AreEqual(0, messenger.CountSubscriptionsForTag<TestMessage>(notExistingTag));
            messenger.Unsubscribe<TestMessage>(token);
            Assert.AreEqual(1, messenger.CountSubscriptionsForTag<MvxSubscriberChangeMessage>(null));
            Assert.AreEqual(0, messenger.CountSubscriptionsForTag<MvxSubscriberChangeMessage>(testTag1));
            Assert.AreEqual(1, messenger.CountSubscriptionsForTag<TestMessage>(testTag1));
            Assert.AreEqual(1, messenger.CountSubscriptionsForTag<TestMessage>(testTag2));
            Assert.AreEqual(0, messenger.CountSubscriptionsForTag<TestMessage>(notExistingTag));
            messenger.Unsubscribe<TestMessage>(token2);
            Assert.AreEqual(1, messenger.CountSubscriptionsForTag<MvxSubscriberChangeMessage>(null));
            Assert.AreEqual(0, messenger.CountSubscriptionsForTag<MvxSubscriberChangeMessage>(testTag1));
            Assert.AreEqual(0, messenger.CountSubscriptionsForTag<TestMessage>(testTag1));
            Assert.AreEqual(1, messenger.CountSubscriptionsForTag<TestMessage>(testTag2));
            Assert.AreEqual(0, messenger.CountSubscriptionsForTag<TestMessage>(notExistingTag));
            messenger.Unsubscribe<TestMessage>(token3);
            Assert.AreEqual(1, messenger.CountSubscriptionsForTag<MvxSubscriberChangeMessage>(null));
            Assert.AreEqual(0, messenger.CountSubscriptionsForTag<MvxSubscriberChangeMessage>(testTag1));
            Assert.AreEqual(0, messenger.CountSubscriptionsForTag<TestMessage>(testTag1));
            Assert.AreEqual(0, messenger.CountSubscriptionsForTag<TestMessage>(testTag2));
            Assert.AreEqual(0, messenger.CountSubscriptionsForTag<TestMessage>(notExistingTag));
        }