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)); }
public void GetSubscriberCount_ShouldReturnZero_WhenQueryNotFound() { var querySubscription = new QuerySubscriptions(); var query = new SingleQuoteQuery(1); long subscriberCount = querySubscription.GetSubscriberCount(query); Assert.Equal(0, subscriberCount); }
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); }