public void ExtensionBaseCallbacksCalled()
        {
            AID.ApplicationInsights_AddCallbacks(methodId,
                                                 callbacksStub.OnBegin0,
                                                 callbacksStub.OnEnd0,
                                                 callbacksStub.OnException0);

            var context = AID.ApplicationInsights_OnBegin(methodId, thisObj);

            Assert.IsTrue(callbacksStub.isOnBeginCalled);

            Assert.AreEqual(null, AID.ApplicationInsights_OnEnd(methodId, context, returnValue, thisObj),
                            "return value was not overrided by End callback");
            Assert.IsTrue(callbacksStub.isOnEndCalled);

            AID.ApplicationInsights_OnException(methodId, context, exception, thisObj);
            Assert.IsTrue(callbacksStub.isOnExceptionCalled);
        }
 public void ExtensionBaseReturnValueDefault()
 {
     Assert.AreEqual(this.returnValue, AID.ApplicationInsights_OnEnd(methodId, null, this.returnValue));
 }
 public void ExtensionBaseReturnValueSubstituted()
 {
     AID.ApplicationInsights_AddCallbacks(methodId, null, (ctx, retVal) => { return(42); }, null);
     Assert.AreEqual(42, Convert.ToInt32(AID.ApplicationInsights_OnEnd(methodId, null, this.returnValue), CultureInfo.InvariantCulture));
 }