public void WaitForTest() { using (var context = UnitTestSynchronizationContext.Create()) { bool flag = false; Action asyncAction = async() => { await Task.Delay(10); flag = true; }; asyncAction(); Assert.IsFalse(flag); context.WaitFor(() => flag, TimeSpan.FromSeconds(1)); Assert.IsTrue(flag); AssertHelper.ExpectedException <TimeoutException>(() => context.WaitFor(() => !flag, TimeSpan.FromMilliseconds(10))); AssertHelper.ExpectedException <ArgumentNullException>(() => UnitTestSynchronizationContextExtensions.WaitFor(context, null, TimeSpan.FromMilliseconds(10))); } AssertHelper.ExpectedException <ArgumentNullException>(() => UnitTestSynchronizationContextExtensions.WaitFor(null, () => true, TimeSpan.FromMilliseconds(10))); }
public void WaitTest() { using (var context = UnitTestSynchronizationContext.Create()) { int actionCallCount = 0; Func <Task <int> > asyncAction = async() => { await Task.Delay(1); Interlocked.Increment(ref actionCallCount); return(actionCallCount); }; var task = asyncAction(); Assert.AreEqual(0, actionCallCount); task.Wait(context); Assert.AreEqual(1, actionCallCount); } AssertHelper.ExpectedException <ArgumentNullException>(() => UnitTestSynchronizationContextExtensions.Wait(Task.FromResult((object)null), null)); }