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)); }