Beispiel #1
0
        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)));
        }
Beispiel #2
0
        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));
        }