public void Invoke_TaskAsyncVoid()
        {
            var      ctx              = new ServerSideAsyncDomainContext(TestURIs.ServerSideAsync);
            TimeSpan delay            = TimeSpan.FromMilliseconds(200);
            TimeSpan minExpectedDelay = TimeSpan.FromMilliseconds(100);

            // Check that we properly wait for "void-Tasks"
            DateTime start    = DateTime.Now;
            var      invokeOp = ctx.SleepAndSetLastDelay(delay);

            this.EnqueueCompletion(() => invokeOp);
            this.EnqueueCallback(() =>
            {
                var actualDelay = (DateTime.Now - start);

                Assert.IsNull(invokeOp.Error);
                Assert.IsTrue(actualDelay >= minExpectedDelay, "Delay was less than expected");

                // Server store the last delay the last thing it does so we shold only get
                // it if we actually waited for the Task to complete
                var getDelayOp = ctx.GetLastDelay();
                this.EnqueueCompletion(() => getDelayOp);
                this.EnqueueCallback(() =>
                {
                    Assert.IsNull(getDelayOp.Error);
                    Assert.AreEqual(delay, getDelayOp.Value, "Server should have had time to set the actual delay");
                });
                this.EnqueueTestComplete();
            });
        }