Esempio n. 1
0
        public async Task FlushSplitEventsInBatches()
        {
            var queueSize = 100;

            _handler = GetFlushHandler(queueSize, 20, 20000);
            await Task.Delay(100);

            for (int i = 0; i < queueSize; i++)
            {
                _ = _handler.Process(new Track(null, null, null, null));
            }

            await _handler.FlushAsync();

            _mockRequestHandler.Verify(r => r.MakeRequest(It.IsAny <Batch>()), times: Times.Exactly(5));
        }
Esempio n. 2
0
        public async Task FlushWaitsForPreviousFlushesTriggeredByInterval()
        {
            var time = 1500;

            _handler = GetFlushHandler(100, 20, 500);
            _requestHandlerBehavior = MultipleTaskResponseBehavior(Task.Delay(time));

            DateTime start = DateTime.Now;

            _ = _handler.Process(new Track(null, null, null, null));

            await Task.Delay(500);

            await _handler.FlushAsync();

            TimeSpan duration = DateTime.Now.Subtract(start);

            _mockRequestHandler.Verify(r => r.MakeRequest(It.IsAny <Batch>()), times: Times.Exactly(1));
            //50 millisecons as error margin
            Assert.IsTrue(duration.CompareTo(TimeSpan.FromMilliseconds(time - 50)) >= 0);
        }