Exemplo n.º 1
0
        public void BeforeWrappedMethod_ReturnsNoOp_IfTheRequiredTransactionIsFinished()
        {
            var transaction = _agent.CreateTransaction(true, "category", "name", true);

            transaction.End();
            _compositeTestAgent.SetTransactionOnPrimaryContextStorage(transaction);

            var type              = typeof(WrapperServiceTests);
            var methodName        = "MyMethod";
            var tracerFactoryName = "NewRelic.Agent.Core.Wrapper.DefaultWrapper";
            var target            = new object();
            var arguments         = new object[0];

            using (var logging = new Logging())
            {
                var wrapperService     = _compositeTestAgent.GetWrapperService();
                var afterWrappedMethod = wrapperService.BeforeWrappedMethod(type, methodName, string.Empty, target, arguments, tracerFactoryName, null, 0, 0);

                Assert.AreEqual(Delegates.NoOp, afterWrappedMethod, "AfterWrappedMethod was not the NoOp delegate.");
                Assert.True(logging.HasMessageThatContains("Transaction has already ended, skipping method"), "Expected log message was not found.");
            }
        }