public async Task GetPrioritizedQueries_ShouldGetPrioritizedQueriesSubscriptionsBySubscriberCountDescending() { var querySubscriptions = new QuerySubscriptions(); var query1 = new TestQuery(1, QueryFunctionType.SingleQuote); var query2 = new TestQuery(2, QueryFunctionType.IntraDay); var query3 = new TestQuery(3, QueryFunctionType.IntraDay); querySubscriptions.AddSubscriber(query1); querySubscriptions.AddSubscriber(query2); querySubscriptions.AddSubscriber(query2); querySubscriptions.AddSubscriber(query2); querySubscriptions.AddSubscriber(query3); querySubscriptions.AddSubscriber(query3); query1.SetMockQueryContext(_mockContext); query2.SetMockQueryContext(_mockContext); query3.SetMockQueryContext(_mockContext); var priorityRule = new QuerySubscriptionCountRule(_mockContextFactory.Object, querySubscriptions, (new Mock <ILogger <QuerySubscriptionCountRule> >()).Object); var prioritizedQueries = (await priorityRule.GetPrioritizedQueries()).ToList(); Assert.Equal(3, prioritizedQueries.Count); Assert.Equal(prioritizedQueries[0], query2); Assert.Equal(prioritizedQueries[1], query3); Assert.Equal(prioritizedQueries[1], query3); }
public async Task GetPrioritizedQueries_ShouldOnlyIncludeSubscriptionsWithStaleData_Null() { var querySubscriptions = new QuerySubscriptions(); var query1 = new TestQuery(1, QueryFunctionType.SingleQuote); var query2 = new TestQuery(2, QueryFunctionType.SingleQuote); querySubscriptions.AddSubscriber(query1); querySubscriptions.AddSubscriber(query2); query1.SetMockQueryContext(_mockContext); query2.SetMockQueryContext(_mockContext); var stockData = new SingleQuoteData( symbolId: 1, ticker: "MSFT", high: 1, low: 2, open: 3, previousClose: 4, volume: 5, change: 6, price: 7, changePercent: 0.9m, lastUpdated: DateTime.UtcNow, lastTradingDay: DateTime.UtcNow ); _mockContext.Setup(c => c.GetCachedQueryResult(2)).Returns(Task.FromResult <StockQueryResult>(new SingleQuoteQueryResult("MSFT", stockData))); var priorityRule = new QuerySubscriptionCountRule(_mockContextFactory.Object, querySubscriptions, (new Mock <ILogger <QuerySubscriptionCountRule> >()).Object); var prioritizedQueries = (await priorityRule.GetPrioritizedQueries()).ToList(); Assert.Single(prioritizedQueries); Assert.Equal(prioritizedQueries[0], query1); }