Exemplo n.º 1
0
        internal int CheckSubscriptionSanity()
        {
            int subscriptionsRemoved = 0;

            _subscriptionLock.EnterWriteLock();

            try
            {
                for (int i = 0; i < Subscriptions.Count; i++)
                {
                    var sub = Subscriptions[i];

                    if (Subscriptions.Count(s => s == sub) > 1)
                    {
                        Subscriptions.RemoveAt(i);
                        subscriptionsRemoved++;
                        i--;
                    }
                }
            }
            finally
            {
                _subscriptionLock.ExitWriteLock();
            }
            return(subscriptionsRemoved);
        }
        public void A_subscription_entry_should_be_added_to_the_database()
        {
            var messageTypes = new[] { new MessageType(typeof(MessageA)), new MessageType(typeof(MessageB)) };

            Storage.Subscribe(TestClients.ClientA, messageTypes);

            var count = Subscriptions.Count();

            Assert.AreEqual(count, 2);
        }
        public void Duplicate_subcription_shouldnt_create_additional_db_rows()
        {
            Storage.Subscribe(TestClients.ClientA, MessageTypes.MessageA);
            Storage.Subscribe(TestClients.ClientA, MessageTypes.MessageA);


            var count = Subscriptions.Count();

            Assert.AreEqual(count, 1);
        }
Exemplo n.º 4
0
        public async Task Duplicate_subcription_shouldnt_create_additional_db_rows()
        {
            await Storage.Subscribe(TestClients.ClientA, MessageTypes.MessageA, null).ConfigureAwait(false);

            await Storage.Subscribe(TestClients.ClientA, MessageTypes.MessageA, null).ConfigureAwait(false);

            var count = Subscriptions.Count();

            Assert.AreEqual(count, 1);
        }
        public void All_subscription_entries_for_specfied_message_types_should_be_removed()
        {
            Storage.Subscribe(TestClients.ClientA, MessageTypes.All);

            Storage.Unsubscribe(TestClients.ClientA, MessageTypes.All);

            var builder = Builders <Subscription> .Filter;
            var query   = builder.Ne(s => s.Subscribers, null) & !builder.Size(s => s.Subscribers, 0);

            var count = Subscriptions.Count(query);

            Assert.AreEqual(0, count);
        }
Exemplo n.º 6
0
        public async Task A_subscription_entry_should_be_added_to_the_database()
        {
            var messageTypes = new[] { new MessageType(typeof(MessageA)), new MessageType(typeof(MessageB)) };

            foreach (var messageType in messageTypes)
            {
                await Storage.Subscribe(TestClients.ClientA, messageType, null).ConfigureAwait(false);
            }

            var count = Subscriptions.Count();

            Assert.AreEqual(count, 2);
        }
Exemplo n.º 7
0
        public int GetSubscriptionCount(SubscriptionType type)
        {
            int subCount = 0;

            if (Subscriptions != null)
            {
                subCount = Subscriptions.Count(item => item.SubscriptionType == type);
            }

            int membersSubCount = 0;

            if (TeamMembers != null)
            {
                membersSubCount = TeamMembers.Select(item => item.GetSubscriptionCount(type)).Sum();
            }

            return(subCount + membersSubCount);
        }
Exemplo n.º 8
0
        public async Task All_subscription_entries_for_specfied_message_types_should_be_removed()
        {
            foreach (var messageType in MessageTypes.All)
            {
                await Storage.Subscribe(TestClients.ClientA, messageType, null).ConfigureAwait(false);
            }

            foreach (var messageType in MessageTypes.All)
            {
                await Storage.Unsubscribe(TestClients.ClientA, messageType, null).ConfigureAwait(false);
            }

            var builder = Builders <Subscription> .Filter;
            var query   = builder.Ne(s => s.Subscribers, null) & !builder.Size(s => s.Subscribers, 0);

            var count = Subscriptions.Count(query);

            Assert.AreEqual(0, count);
        }
Exemplo n.º 9
0
 public bool IsSubscribed(string userName)
 {
     return(Subscriptions.Count(s => s.UserName == userName) > 0);
 }