public void Intercept_AsyncVoidReturnInvocation()
        {
            var instrumentationInterceptor = this.CreateInstrumentationInterceptor();
            var invocationMock             = InvocationMockHelper.MockAsyncVoidReturnInvocation();

            using (var resetEvent = new ManualResetEventSlim())
            {
                RegistrarMockCountResetEvent(this.registrarMock, resetEvent, 3);
                instrumentationInterceptor.Intercept(invocationMock.Object);
                resetEvent.Wait();
            }

            this.registrarMock.Verify(r => r.Register(Guid, It.IsAny <string>()), Times.Exactly(3));
            this.guidProviderMock.Verify(g => g.NewGuid(), Times.Once());
            invocationMock.Verify(i => i.Proceed(), Times.Once());
            invocationMock.VerifyGet(i => i.ReturnValue, Times.Once());
            var returnValue = invocationMock.Object.ReturnValue;

            Assert.That(returnValue, Is.AssignableTo <Task>());
            Assert.That(((Task)returnValue).Status, Is.EqualTo(TaskStatus.RanToCompletion));
        }