コード例 #1
0
ファイル: QueryQueueTests.cs プロジェクト: GaryHuang501/Fomo
        public void GetCurrentIntervalQueriesRanCount_ShouldReturnExecutedQueryCount_WhenAllExecuted()
        {
            var queryQueue = new QueryQueue();
            var query1     = new TestQuery(1, QueryFunctionType.SingleQuote);
            var query2     = new TestQuery(2, QueryFunctionType.IntraDay);
            var query3     = new TestQuery(3, QueryFunctionType.Weekly);

            queryQueue.Enqueue(query1);
            queryQueue.Enqueue(query2);
            queryQueue.Enqueue(query3);
            queryQueue.MarkAsExecuted(query1);
            queryQueue.MarkAsExecuted(query2);
            queryQueue.MarkAsExecuted(query3);

            Assert.Equal(3, queryQueue.GetCurrentIntervalQueriesRanCount());
        }
コード例 #2
0
ファイル: QueryQueueTests.cs プロジェクト: GaryHuang501/Fomo
        public async Task GetCurrentIntervalQueriesRanCount_ShouldResetOnNextInterval()
        {
            var queryQueue = new QueryQueue();

            queryQueue.SetIntervalKey(() => DateTime.UtcNow.Millisecond);

            var query1 = new TestQuery(1, QueryFunctionType.SingleQuote);
            var query2 = new TestQuery(2, QueryFunctionType.IntraDay);
            var query3 = new TestQuery(3, QueryFunctionType.Weekly);

            queryQueue.Enqueue(query1);
            queryQueue.Enqueue(query2);
            queryQueue.Enqueue(query3);

            queryQueue.Dequeue(2);
            queryQueue.MarkAsExecuted(query1);
            queryQueue.MarkAsExecuted(query2);

            Assert.Equal(2, queryQueue.GetCurrentIntervalQueriesRanCount());

            await Task.Delay(10);

            Assert.Equal(0, queryQueue.GetCurrentIntervalQueriesRanCount());
        }