public void When_task_completes_fast_it_should_succeed() { //----------------------------------------------------------------------------------------------------------- // Arrange //----------------------------------------------------------------------------------------------------------- var timer = new FakeClock(); var taskFactory = new TaskCompletionSource <int>(); //----------------------------------------------------------------------------------------------------------- // Act //----------------------------------------------------------------------------------------------------------- Action action = () => { Func <Task <int> > func = () => taskFactory.Task; func.Should(timer).CompleteWithin(100.Milliseconds()) .Which.Should().Be(42); }; taskFactory.SetResult(42); timer.CompletesBeforeTimeout(); //----------------------------------------------------------------------------------------------------------- // Assert //----------------------------------------------------------------------------------------------------------- action.Should().NotThrow(); }
public void When_no_exception_should_be_thrown_for_async_func_after_wait_time_but_it_was_it_should_throw() { // Arrange var waitTime = 2.Seconds(); var pollInterval = 10.Milliseconds(); var clock = new FakeClock(); var timer = clock.StartTimer(); clock.Delay(waitTime); clock.CompletesBeforeTimeout(); Func <Task> throwLongerThanWaitTime = async() => { if (timer.Elapsed <= waitTime.Multiply(1.5)) { throw new ArgumentException("An exception was forced"); } await Task.Delay(0); }; // Act Func <Task> action = () => throwLongerThanWaitTime.Should(clock) .NotThrowAfterAsync(waitTime, pollInterval, "we passed valid arguments"); // Assert action.Should().Throw <XunitException>() .WithMessage("Did not expect any exceptions after 2s because we passed valid arguments*"); }
public void When_task_completes_fast_async_it_should_succeed() { // Arrange var timer = new FakeClock(); var taskFactory = new TaskCompletionSource <bool>(); // Act Func <Task> action = () => taskFactory.Awaiting(t => (Task)t.Task).Should(timer).CompleteWithinAsync(100.Milliseconds()); taskFactory.SetResult(true); timer.CompletesBeforeTimeout(); // Assert action.Should().NotThrow(); }