private static IReturnsResult <TMock> DelayedResult <TMock, TResult>(IReturns <TMock, ValueTask <TResult> > mock, TResult value, TimeSpan delay) where TMock : class { Guard.Positive(delay); return(mock.Returns(() => { return new ValueTask <TResult>(Task.Delay(delay).ContinueWith(t => value)); })); }
private static IReturnsResult <TMock> DelayedException <TMock, TResult>(IReturns <TMock, ValueTask <TResult> > mock, Exception exception, TimeSpan delay) where TMock : class { Guard.Positive(delay); var tcs = new TaskCompletionSource <TResult>(); Task.Delay(delay).ContinueWith(t => tcs.SetException(exception)); return(mock.Returns(new ValueTask <TResult>(tcs.Task))); }
private static IReturnsResult <TMock> DelayedResult <TMock, TResult>(IReturns <TMock, Task <TResult> > mock, TResult value, TimeSpan delay) where TMock : class { Guard.Positive(delay); var tcs = new TaskCompletionSource <TResult>(); Task.Delay(delay).ContinueWith(t => tcs.SetResult(value)); return(mock.Returns(tcs.Task)); }