Ejemplo n.º 1
0
        public void InitializeRemembersLastKnownRoleName()
        {
            int i = 0;
            Func <HttpContext> nullContextAfterFirstCall = () =>
            {
                if (i++ > 0)
                {
                    return(null);
                }
                else
                {
                    var httpContext = HttpModuleHelper.GetFakeHttpContext(new Dictionary <string, string>
                    {
                        { "WAS-DEFAULT-HOSTNAME", "RoleNameFromFirst" }
                    });

                    return(httpContext);
                }
            };

            var eventTelemetry = new EventTelemetry("name");
            var source         = new TestableAzureAppServiceRoleNameFromHostNameHeaderInitializer(resolveContext: nullContextAfterFirstCall);

            source.Initialize(eventTelemetry);
            Assert.AreEqual("RoleNameFromFirst", eventTelemetry.Context.Cloud.RoleName);

            var newEventTelemetry = new EventTelemetry("name");

            source.Initialize(newEventTelemetry);
            Assert.AreEqual("RoleNameFromFirst", newEventTelemetry.Context.Cloud.RoleName);
        }
Ejemplo n.º 2
0
        public void InitializeDoesNotThrowIfHttpContextIsUnavailable()
        {
            Func <HttpContext> nullContext = () => { return(null); };

            var initializer = new TestableAzureAppServiceRoleNameFromHostNameHeaderInitializer(null, nullContext);

            initializer.Initialize(new RequestTelemetry());
        }
Ejemplo n.º 3
0
        public void InitializeDoesNotThrowIfHostNameHeaderIsEmpty()
        {
            var eventTelemetry = new EventTelemetry("name");
            var source         = new TestableAzureAppServiceRoleNameFromHostNameHeaderInitializer(new Dictionary <string, string>
            {
                { "WAS-DEFAULT-HOSTNAME", string.Empty }
            });

            source.Initialize(eventTelemetry);
        }
Ejemplo n.º 4
0
        public void InitializeSetsRoleNameFromHostNameHeaderEndingInAzureWebSites()
        {
            var eventTelemetry = new EventTelemetry("name");
            var source         = new TestableAzureAppServiceRoleNameFromHostNameHeaderInitializer(new Dictionary <string, string>
            {
                { "WAS-DEFAULT-HOSTNAME", "RoleNameEnv.azurewebsites.net" }
            });

            source.Initialize(eventTelemetry);

            Assert.AreEqual("RoleNameEnv", eventTelemetry.Context.Cloud.RoleName);
        }
Ejemplo n.º 5
0
        public void InitializeSetsRoleNameFromHostNameWithAzureWebsitesCustom()
        {
            var eventTelemetry = new EventTelemetry("name");
            var source         = new TestableAzureAppServiceRoleNameFromHostNameHeaderInitializer(new Dictionary <string, string>
            {
                { "WAS-DEFAULT-HOSTNAME", "appserviceslottest-ppe.azurewebsites.us" }
            });

            source.WebAppSuffix = ".azurewebsites.us";
            source.Initialize(eventTelemetry);

            Assert.AreEqual("appserviceslottest-ppe", eventTelemetry.Context.Cloud.RoleName);
        }
Ejemplo n.º 6
0
        public void InitializeDoesNotOverrideRoleName()
        {
            var requestTelemetry = new RequestTelemetry();

            requestTelemetry.Context.Cloud.RoleName = "ExistingRoleName";
            var source = new TestableAzureAppServiceRoleNameFromHostNameHeaderInitializer(new Dictionary <string, string>
            {
                { "WAS-DEFAULT-HOSTNAME", "appserviceslottest-ppe.azurewebsites.us" }
            });

            source.Initialize(requestTelemetry);

            Assert.AreEqual("ExistingRoleName", requestTelemetry.Context.Cloud.RoleName);
        }
Ejemplo n.º 7
0
        public void InitializeReturnsIfNonWebApp()
        {
            // This env variable is used as marker to know if running in app service or not.
            Environment.SetEnvironmentVariable("WEBSITE_HOSTNAME", null);
            var requestTelemetry = new RequestTelemetry();

            var source = new TestableAzureAppServiceRoleNameFromHostNameHeaderInitializer(new Dictionary <string, string>
            {
                { "WAS-DEFAULT-HOSTNAME", "appserviceslottest-ppe.azurewebsites.us" }
            });

            source.Initialize(requestTelemetry);

            Assert.IsNull(requestTelemetry.Context.Cloud.RoleName);
        }
Ejemplo n.º 8
0
        public void InitializeSetsRoleNameFromEnvWithAzureWebsitesCustom()
        {
            try
            {
                Environment.SetEnvironmentVariable("WEBSITE_HOSTNAME", "appserviceslottest-ppe.azurewebsites.us");
                var eventTelemetry = new EventTelemetry("name");
                var source         = new TestableAzureAppServiceRoleNameFromHostNameHeaderInitializer(".azurewebsites.us");

                source.Initialize(eventTelemetry);
                Assert.AreEqual("appserviceslottest-ppe", eventTelemetry.Context.Cloud.RoleName);
            }
            finally
            {
                Environment.SetEnvironmentVariable("WEBSITE_HOSTNAME", null);
            }
        }
Ejemplo n.º 9
0
        public void InitializeSavesRoleNameIntoRequestFromHostNameHeader()
        {
            var requestTelemetry = new RequestTelemetry();
            Func <HttpContext, RequestTelemetry> requestFromContext = (ctx) => { return(requestTelemetry); };

            var eventTelemetry = new EventTelemetry("name");
            var source         = new TestableAzureAppServiceRoleNameFromHostNameHeaderInitializer(new Dictionary <string, string>
            {
                { "WAS-DEFAULT-HOSTNAME", "RoleNameFromHostHeader" }
            }, getRequestFromContext: requestFromContext);

            source.Initialize(eventTelemetry);

            Assert.AreEqual("RoleNameFromHostHeader", eventTelemetry.Context.Cloud.RoleName);
            Assert.AreEqual("RoleNameFromHostHeader", requestTelemetry.Context.Cloud.RoleName);
        }
Ejemplo n.º 10
0
        public void InitializeFallsbackToEnvIfHttpContextIsUnavailableWithAzureWebsitesHostnameending()
        {
            try
            {
                Environment.SetEnvironmentVariable("WEBSITE_HOSTNAME", "RoleNameEnv.azurewebsites.net");
                Func <HttpContext> nullContext = () => { return(null); };

                var initializer = new TestableAzureAppServiceRoleNameFromHostNameHeaderInitializer(null, nullContext);
                var req         = new RequestTelemetry();
                initializer.Initialize(req);

                Assert.AreEqual("RoleNameEnv", req.Context.Cloud.RoleName);
            }
            finally
            {
                Environment.SetEnvironmentVariable("WEBSITE_HOSTNAME", null);
            }
        }
Ejemplo n.º 11
0
        public void InitializeFallsbackToEnvIfHostNameHeaderIsEmpty()
        {
            try
            {
                Environment.SetEnvironmentVariable("WEBSITE_HOSTNAME", "RoleNameEnv");
                var eventTelemetry = new EventTelemetry("name");
                var source         = new TestableAzureAppServiceRoleNameFromHostNameHeaderInitializer(new Dictionary <string, string>
                {
                    { "WAS-DEFAULT-HOSTNAME", string.Empty }
                });

                source.Initialize(eventTelemetry);
                Assert.AreEqual("RoleNameEnv", eventTelemetry.Context.Cloud.RoleName);
            }
            finally
            {
                Environment.SetEnvironmentVariable("WEBSITE_HOSTNAME", null);
            }
        }