public void Setup() { _applicationName = "ApplicationName"; _addResponseHeaders = true; _startAction = (context, information) => { }; _finishAction = (context, information) => { }; _testApmWebApiFilterAttribute = new TestApmWebApiFilterAttribute(_applicationName, _addResponseHeaders, _startAction, _finishAction); }
public void WhenLoggingStartOfRequest() { var startActionLogged = false; var applicationName = string.Empty; var eventName = string.Empty; var flags = string.Empty; var methodsIdentifier = string.Empty; var parentSpanId = string.Empty; var sampled = string.Empty; var spanId = string.Empty; var traceId = string.Empty; var httpRequest = default(HttpRequestMessage); var actionContext = ContextUtil.CreateActionContext(); actionContext.Request.Headers.Add(Constants.TraceIdHeaderKey, "TestClient=1234"); actionContext.Request.Headers.Add(Constants.SpanIdHeaderKey, "SpecialProcess=4321"); actionContext.Request.Headers.Add(Constants.ParentSpanIdHeaderKey, "ParentSpecialProcess=5678"); actionContext.Request.Headers.Add(Constants.SampledHeaderKey, "Sampled"); actionContext.Request.Headers.Add(Constants.FlagsHeaderKey, "Flags"); _startAction = (context, information) => { startActionLogged = true; applicationName = information.ApplicationName; eventName = information.EventName; flags = information.Flags; methodsIdentifier = information.MethodIdentifier; parentSpanId = information.ParentSpanId; sampled = information.Sampled; spanId = information.SpanId; traceId = information.TraceId; httpRequest = information.Request; }; _testApmWebApiFilterAttribute = new TestApmWebApiFilterAttribute(_applicationName, _addResponseHeaders, _startAction, _finishAction); _testApmWebApiFilterAttribute.OnActionExecuting(actionContext); Assert.IsNotNull(httpRequest); Assert.IsTrue(startActionLogged); Assert.IsNotEmpty(applicationName); Assert.IsNotEmpty(eventName); Assert.AreEqual("TestClient=1234", traceId); Assert.AreEqual("SpecialProcess=4321", spanId); Assert.AreEqual("ParentSpecialProcess=5678", parentSpanId); Assert.AreEqual("Sampled", sampled); Assert.AreEqual("Flags", flags); var controllerName = actionContext.ControllerContext.ControllerDescriptor.ControllerName; var methodType = actionContext.Request.Method; var actionName = actionContext.ActionDescriptor.ActionName; var arguments = string.Empty; var expectedMethodIdentifier = string.Format("{0}.{1}({2}) - {3}", controllerName, actionName, arguments, methodType); Assert.AreEqual(expectedMethodIdentifier, methodsIdentifier); }