public void WhenNoTimeoutProvided_TakesDefault() { // arrange var ra = new RequestA(); var rb = new RequestB(); var t0 = DateTimeOffset.UtcNow; var t10 = t0.AddSeconds(11); var t20 = t0.AddSeconds(21); // act var raTask = _bus.Send(ra); var rbTask = _bus.Send(rb); // when 10 seconds passed _bus.CurrentTimeProvider = () => t10; Thread.Sleep(1200); // give the internal cleanup timer a chance to execute // assert raTask.IsCanceled.Should().BeTrue(); rbTask.IsCanceled.Should().BeFalse(); // when 20 seconds passed _bus.CurrentTimeProvider = () => t20; Thread.Sleep(1200); // give the internal cleanup timer a chance to execute rbTask.IsCanceled.Should().BeTrue(); }
public void WhenNoTimeoutProvided_TakesDefaultTimeoutForRequestType() { // arrange var ra = new RequestA(); var rb = new RequestB(); // act var raTask = _bus.Send(ra); var rbTask = _bus.Send(rb); WaitForTasks(2000, raTask, rbTask); // after 10 seconds _timeNow = _timeZero.AddSeconds(timeoutForA_10 + 1); _bus.CleanPendingRequests(); // assert raTask.IsCanceled.Should().BeTrue(); rbTask.IsCanceled.Should().BeFalse(); // adter 20 seconds _timeNow = _timeZero.AddSeconds(timeoutDefault_20 + 1); _bus.CleanPendingRequests(); // assert rbTask.IsCanceled.Should().BeTrue(); }