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)); }
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); }