Esempio n. 1
0
        public async Task Should_NotExceedMaxQueriesForInterval()
        {
            await _queryEventBus.SetMaxQueryPerIntervalThreshold(2);

            await _queryEventBus.Reset();

            var query1 = new TestQuery(1);
            var query2 = new TestQuery(2);
            var query3 = new TestQuery(3);

            _querySubscriptions.AddSubscriber(query1);
            _querySubscriptions.AddSubscriber(query1);
            _querySubscriptions.AddSubscriber(query1);

            _querySubscriptions.AddSubscriber(query2);
            _querySubscriptions.AddSubscriber(query2);

            _querySubscriptions.AddSubscriber(query3);

            await _queryEventBus.ExecutePendingQueries();

            query1.MockQueryContext.Verify(c => c.SaveQueryResultToStore(), Times.Once);
            query2.MockQueryContext.Verify(c => c.SaveQueryResultToStore(), Times.Once);
            query3.MockQueryContext.Verify(c => c.SaveQueryResultToStore(), Times.Never);

            //Executed queries get subscriber count cleared.
            Assert.Equal(1, _querySubscriptions.Count);
            Assert.Equal(1, _querySubscriptions.GetSubscriberCount(query3));
        }
Esempio n. 2
0
        public void GetSubscriberCount_ShouldReturnZero_WhenQueryNotFound()
        {
            var querySubscription = new QuerySubscriptions();

            var query = new SingleQuoteQuery(1);

            long subscriberCount = querySubscription.GetSubscriberCount(query);

            Assert.Equal(0, subscriberCount);
        }
Esempio n. 3
0
        public void GetSubscriberCount_ShouldReturnSubcriberCount_ForQuery()
        {
            var querySubscription = new QuerySubscriptions();

            var query = new SingleQuoteQuery(1);

            querySubscription.AddSubscriber(query);
            querySubscription.AddSubscriber(query);

            long subscriberCount = querySubscription.GetSubscriberCount(query);

            Assert.Equal(2, subscriberCount);
        }