Exemplo n.º 1
0
        public void SetsClientIpFromWcfContextOnOtherEvent()
        {
            const String originalIp = "10.12.32.12";
            const String newIp      = "172.34.12.45";
            var          context    = new MockOperationContext();

            context.IncomingProperties.Add(
                RemoteEndpointMessageProperty.Name,
                new RemoteEndpointMessageProperty(originalIp, 7656));

            var initializer = new ClientIpTelemetryInitializer();

            // initialize request with the original IP
            initializer.Initialize(context.Request, context);

            // replace IP so that we can tell
            // it is being picked up from the request
            // rather than the context
            context.IncomingProperties.Clear();
            context.IncomingProperties.Add(
                RemoteEndpointMessageProperty.Name,
                new RemoteEndpointMessageProperty(newIp, 7656));

            var telemetry = new EventTelemetry("myevent");

            initializer.Initialize(telemetry, context);

            Assert.AreEqual(originalIp, telemetry.Context.Location.Ip);
        }
Exemplo n.º 2
0
        public void InitializeDoNotMakeRequestAParentOfItself()
        {
            var context          = new MockOperationContext();
            var initializer      = new OperationCorrelationTelemetryInitializer();
            var requestTelemetry = context.Request;

            initializer.Initialize(requestTelemetry, context);
            Assert.AreEqual(null, requestTelemetry.Context.Operation.ParentId);
            Assert.AreEqual(requestTelemetry.Id, requestTelemetry.Context.Operation.Id);
        }
Exemplo n.º 3
0
        public void SetsOperationIdWhenNoParentOperationIsPresent()
        {
            var context     = new MockOperationContext();
            var initializer = new OperationCorrelationTelemetryInitializer();

            var telemetry = context.Request;

            initializer.Initialize(telemetry, context);

            Assert.AreEqual(telemetry.Id, telemetry.Context.Operation.Id);
        }
Exemplo n.º 4
0
        public void InitializeDoesNotOverrideCustomerParentOperationId()
        {
            var context     = new MockOperationContext();
            var initializer = new OperationCorrelationTelemetryInitializer();
            var telemetry   = new TraceTelemetry();

            telemetry.Context.Operation.ParentId = "someId";
            initializer.Initialize(telemetry, context);

            Assert.AreEqual("someId", telemetry.Context.Operation.ParentId);
        }
Exemplo n.º 5
0
        public void InitializeSetsRequestTelemetryRootOperationIdToOperationId()
        {
            var context          = new MockOperationContext();
            var initializer      = new OperationCorrelationTelemetryInitializer();
            var requestTelemetry = context.Request;

            var customerTelemetry = new TraceTelemetry();

            initializer.Initialize(customerTelemetry, context);

            Assert.AreEqual(requestTelemetry.Id, requestTelemetry.Context.Operation.Id);
        }
Exemplo n.º 6
0
        public void InitializeSetsRootOperationIdForTelemetryUsingIdFromRequestTelemetry()
        {
            var context = new MockOperationContext();

            context.Request.Context.Operation.Id = "RootId";

            var initializer        = new OperationCorrelationTelemetryInitializer();
            var exceptionTelemetry = new ExceptionTelemetry();

            initializer.Initialize(exceptionTelemetry, context);

            Assert.AreEqual(context.Request.Context.Operation.Id, exceptionTelemetry.Context.Operation.Id);
        }
Exemplo n.º 7
0
        public void ClientIpIsCopiedFromRequestIfPresent()
        {
            const String clientIp = "10.12.32.12";
            var          context  = new MockOperationContext();

            context.Request.Context.Location.Ip = clientIp;

            var initializer = new ClientIpTelemetryInitializer();
            var telemetry   = new EventTelemetry();

            initializer.Initialize(telemetry, context);

            Assert.AreEqual(clientIp, telemetry.Context.Location.Ip);
        }
Exemplo n.º 8
0
        public void UserAgentIsCopiedFromRequestIfPresent()
        {
            var context = new MockOperationContext();

            context.EndpointUri   = new Uri("http://localhost/Service1.svc");
            context.OperationName = "GetData";
            context.Request.Context.User.UserAgent = "MyUserAgent";

            var initializer = new UserAgentTelemetryInitializer();
            var telemetry   = new EventTelemetry();

            initializer.Initialize(telemetry, context);

            Assert.AreEqual(context.Request.Context.User.UserAgent, telemetry.Context.User.UserAgent);
        }
        public void UserAgentIsObtainedFromOperationContextIfPresent()
        {
            var context = new MockOperationContext();

            context.SetState("UATI_UserAgent", "MyAgent");

            context.EndpointUri   = new Uri("http://localhost/Service1.svc");
            context.OperationName = "GetData";

            var initializer = new UserAgentTelemetryInitializer();
            var telemetry   = new EventTelemetry();

            initializer.Initialize(telemetry, context);

            Assert.AreEqual("MyAgent", telemetry.Context.User.UserAgent);
        }
Exemplo n.º 10
0
        public void RequestNameEqualsOperationName()
        {
            var context = new MockOperationContext();

            context.EndpointUri   = new Uri("net.tcp://localhost/Service1.svc");
            context.OperationName = "GetData";

            var initializer = new OperationNameTelemetryInitializer();
            var telemetry   = new RequestTelemetry();

            initializer.Initialize(telemetry, context);

            String name = telemetry.Context.Operation.Name;

            Assert.AreEqual(name, telemetry.Name);
        }
Exemplo n.º 11
0
        public void InitializeDoesNotOverrideCustomerRootOperationId()
        {
            var context          = new MockOperationContext();
            var initializer      = new OperationCorrelationTelemetryInitializer();
            var requestTelemetry = context.Request;

            requestTelemetry.Context.Operation.Id = "RootId";

            var customerTelemetry = new TraceTelemetry();

            customerTelemetry.Context.Operation.Id = "CustomId";

            initializer.Initialize(customerTelemetry, context);

            Assert.AreEqual("CustomId", customerTelemetry.Context.Operation.Id);
        }
Exemplo n.º 12
0
        public void OperationNameIsCopiedFromRequestIfPresent()
        {
            const string Name    = "MyOperationName";
            var          context = new MockOperationContext();

            context.EndpointUri   = new Uri("net.tcp://localhost/Service1.svc");
            context.OperationName = "GetData";

            context.Request.Context.Operation.Name = Name;

            var initializer = new OperationNameTelemetryInitializer();
            var telemetry   = new EventTelemetry();

            initializer.Initialize(telemetry, context);

            Assert.AreEqual(Name, telemetry.Context.Operation.Name);
        }
Exemplo n.º 13
0
        public void SetsClientIpFromWcfContextOnRequest()
        {
            const String clientIp = "10.12.32.12";
            var          context  = new MockOperationContext();

            context.IncomingProperties.Add(
                RemoteEndpointMessageProperty.Name,
                new RemoteEndpointMessageProperty(clientIp, 7656));

            var initializer = new ClientIpTelemetryInitializer();

            var telemetry = context.Request;

            initializer.Initialize(telemetry, context);

            Assert.AreEqual(clientIp, telemetry.Context.Location.Ip);
        }
Exemplo n.º 14
0
        public void AnonymousDoesNotIncludeUserId()
        {
            var context = new MockOperationContext();

            context.EndpointUri   = new Uri("http://localhost/Service1.svc");
            context.OperationName = "GetData";

            var authContext = new SimpleAuthorizationContext();

            context.SecurityContext = new ServiceSecurityContext(authContext);

            var initializer = new UserTelemetryInitializer();
            var telemetry   = new RequestTelemetry();

            initializer.Initialize(telemetry, context);

            Assert.IsNull(telemetry.Context.User.Id);
        }
Exemplo n.º 15
0
        public void InitializeReadsRootIdFromCustomSoapHeader()
        {
            var context = new MockOperationContext();

            context.AddIncomingMessageHeader("headerName", "somenamespace", "RootId");

            var initializer = new OperationCorrelationTelemetryInitializer();

            initializer.SoapRootOperationIdHeaderName = "headerName";
            initializer.SoapHeaderNamespace           = "somenamespace";

            var requestTelemetry = context.Request;

            var customerTelemetry = new TraceTelemetry();

            initializer.Initialize(customerTelemetry, context);
            Assert.AreEqual("RootId", customerTelemetry.Context.Operation.Id);
            Assert.AreEqual("RootId", requestTelemetry.Context.Operation.Id);
        }
Exemplo n.º 16
0
        public void ContextUserAgentIsSetIfPresent()
        {
            var context = new MockOperationContext();

            context.EndpointUri   = new Uri("http://localhost/Service1.svc");
            context.OperationName = "GetData";

            HttpRequestMessageProperty http = new HttpRequestMessageProperty();

            http.Headers["User-Agent"] = "MyUserAgent";
            context.IncomingProperties.Add(HttpRequestMessageProperty.Name, http);

            var initializer = new UserAgentTelemetryInitializer();
            var telemetry   = new RequestTelemetry();

            initializer.Initialize(telemetry, context);

            Assert.AreEqual("MyUserAgent", telemetry.Context.User.UserAgent);
        }
Exemplo n.º 17
0
        public void AuthenticatedRequestFillsUserIdWithUserName()
        {
            var context = new MockOperationContext();

            context.EndpointUri   = new Uri("http://localhost/Service1.svc");
            context.OperationName = "GetData";

            var authContext = new SimpleAuthorizationContext();

            authContext.AddIdentity(new GenericIdentity("myuser"));
            context.SecurityContext = new ServiceSecurityContext(authContext);

            var initializer = new UserTelemetryInitializer();
            var telemetry   = new RequestTelemetry();

            initializer.Initialize(telemetry, context);

            Assert.AreEqual("myuser", telemetry.Context.User.Id);
        }
Exemplo n.º 18
0
        public void HttpEndpointDoesNotHaveMethodInName()
        {
            var context = new MockOperationContext();

            context.EndpointUri   = new Uri("http://localhost/Service1.svc");
            context.OperationName = "GetData";

            HttpRequestMessageProperty http = new HttpRequestMessageProperty();

            http.Method = "POST";
            context.IncomingProperties.Add(HttpRequestMessageProperty.Name, http);

            var initializer = new OperationNameTelemetryInitializer();
            var telemetry   = new RequestTelemetry();

            initializer.Initialize(telemetry, context);

            String name = telemetry.Context.Operation.Name;

            Assert.AreEqual(name, "IFakeService.GetData");
        }
Exemplo n.º 19
0
        public void InitializeReadsRootIdFromCustomHeader()
        {
            var httpHeaders = new HttpRequestMessageProperty();

            httpHeaders.Headers["headerName"] = "RootId";

            var context = new MockOperationContext();

            context.SetHttpHeaders(httpHeaders);
            var initializer = new OperationCorrelationTelemetryInitializer();

            initializer.RootOperationIdHeaderName = "headerName";

            var requestTelemetry = context.Request;

            var customerTelemetry = new TraceTelemetry();

            initializer.Initialize(customerTelemetry, context);
            Assert.AreEqual("RootId", customerTelemetry.Context.Operation.Id);
            Assert.AreEqual("RootId", requestTelemetry.Context.Operation.Id);
        }