예제 #1
0
        public void WebConfigTransform_Throws_ForInValidHostingModel(string attributeValue)
        {
            // Template uses AspNetCoreModuleV1
            var input = WebConfigTransformTemplates.WebConfigTemplate;

            Assert.Throws <Exception>(() => WebConfigTransform.Transform(null, "test.dll", configureForAzure: false, useAppHost: true, extension: ".exe", aspNetCoreModuleName: null, aspNetCoreHostingModel: attributeValue, environmentName: null, projectFullPath: null));
        }
예제 #2
0
        public void WebConfigTransform_HandlesLocations_Correctly(XDocument template)
        {
            var input = template;

            var output = WebConfigTransform.Transform(input, "test.dll", configureForAzure: false, useAppHost: true, extension: ".exe", aspNetCoreModuleName: null, aspNetCoreHostingModel: null, environmentName: null);

            Assert.True(XNode.DeepEquals(output, template));
        }
예제 #3
0
        public void WebConfigTransform_creates_ProcessPath_WithCorrectExtension()
        {
            Assert.True(XNode.DeepEquals(WebConfigTransformTemplates.WebConfigTemplate,
                                         WebConfigTransform.Transform(null, "test.dll", configureForAzure: false, useAppHost: true, extension: ".exe", aspNetCoreModuleName: null, aspNetCoreHostingModel: null, environmentName: null)));

            Assert.True(XNode.DeepEquals(WebConfigTransformTemplates.WebConfigTemplateWithOutExe,
                                         WebConfigTransform.Transform(null, "test.dll", configureForAzure: false, useAppHost: true, extension: null, aspNetCoreModuleName: null, aspNetCoreHostingModel: null, environmentName: null)));
        }
예제 #4
0
        public void WebConfigTransform_overwrites_processPath()
        {
            var newProcessPath =
                (string)WebConfigTransform.Transform(WebConfigTransformTemplates.WebConfigTemplate, "app.exe", configureForAzure: false, useAppHost: true, extension: ".exe", aspNetCoreModuleName: null, aspNetCoreHostingModel: null, environmentName: null)
                .Descendants("aspNetCore").Single().Attribute("processPath");

            Assert.Equal(@".\app.exe", newProcessPath);
        }
예제 #5
0
        public void WebConfigTransform_will_append_Env_IfPassed()
        {
            var input = WebConfigTransformTemplates.WebConfigTemplate;

            var output = WebConfigTransform.Transform(input, "test.dll", configureForAzure: false, useAppHost: true, extension: ".exe", aspNetCoreModuleName: null, aspNetCoreHostingModel: null, environmentName: "Production");

            Assert.True(XNode.DeepEquals(output, WebConfigTransformTemplates.WebConfigTemplateWithEnvironmentVariable));
        }
예제 #6
0
        public void WebConfigTransform_will_Override_Env_IfUpdated()
        {
            var input = WebConfigTransformTemplates.WebConfigTemplateWithEnvironmentVariable;

            var output = WebConfigTransform.Transform(input, "test.dll", configureForAzure: false, useAppHost: true, extension: ".exe", aspNetCoreModuleName: null, aspNetCoreHostingModel: null, environmentName: "Staging");

            Assert.Equal("Staging", (string)output.Descendants("environmentVariable").Single().Attribute("value"));
        }
예제 #7
0
        public void WebConfigTransform_creates_new_config_if_one_does_not_exist()
        {
            Assert.True(XNode.DeepEquals(WebConfigTransformTemplates.WebConfigTemplate,
                                         WebConfigTransform.Transform(null, "test.dll", configureForAzure: false, useAppHost: true, extension: ".exe", aspNetCoreModuleName: null, aspNetCoreHostingModel: null, environmentName: null)));

            Assert.True(XNode.DeepEquals(WebConfigTransformTemplates.WebConfigTemplatePortable,
                                         WebConfigTransform.Transform(null, "test.dll", configureForAzure: false, useAppHost: false, extension: null, aspNetCoreModuleName: null, aspNetCoreHostingModel: null, environmentName: null)));
        }
예제 #8
0
        public void WebConfigTransform_DoesNotSet_HostingModelIfEmpty(string elementName, string attributeName, string attributeValue)
        {
            var input = WebConfigTransformTemplates.WebConfigTemplate;

            var output = WebConfigTransform.Transform(input, "test.dll", configureForAzure: false, useAppHost: true, extension: ".exe", aspNetCoreModuleName: null, aspNetCoreHostingModel: attributeValue, environmentName: null);

            Assert.Null((string)output.Descendants(elementName).Single().Attribute(attributeName));
        }
예제 #9
0
        public void WebConfigTransform_creates_ProcessPath_WithCorrectExtension()
        {
            Assert.True(XNode.DeepEquals(WebConfigTemplate,
                                         WebConfigTransform.Transform(null, "test.dll", configureForAzure: false, isPortable: false, extension: ".exe", aspNetCoreHostingModel: null)));

            Assert.True(XNode.DeepEquals(WebConfigTemplateWithOutExe,
                                         WebConfigTransform.Transform(null, "test.dll", configureForAzure: false, isPortable: false, extension: null, aspNetCoreHostingModel: null)));
        }
예제 #10
0
        public void WebConfigTransform_UsesAspNetCoreHostingModelValue_ForHostingModel(string elementName, string attributeName, string attributeValue)
        {
            var input = WebConfigTemplate;

            var output = WebConfigTransform.Transform(input, "test.dll", configureForAzure: false, isPortable: false, extension: ".exe", aspNetCoreHostingModel: attributeValue);

            Assert.Equal(attributeValue, (string)output.Descendants(elementName).Single().Attribute(attributeName));
        }
예제 #11
0
        public void WebConfigTransform_WillNot_AddLocation_IfNotPresentInWebConfig()
        {
            var input = WebConfigTemplateWithoutLocation;

            var output = WebConfigTransform.Transform(input, "test.dll", configureForAzure: false, useAppHost: true, extension: ".exe", aspNetCoreHostingModel: null, environmentName: null);

            Assert.True(XNode.DeepEquals(output, WebConfigTemplateWithoutLocation));
        }
예제 #12
0
        public void WebConfigTransform_overwrites_processPath()
        {
            var newProcessPath =
                (string)WebConfigTransform.Transform(WebConfigTemplate, "app.exe", configureForAzure: false, isPortable: false)
                .Descendants("aspNetCore").Single().Attribute("processPath");

            Assert.Equal(@".\app.exe", newProcessPath);
        }
예제 #13
0
        public void WebConfigTransform_creates_new_config_if_one_does_not_exist()
        {
            Assert.True(XNode.DeepEquals(WebConfigTemplate,
                                         WebConfigTransform.Transform(null, "test.dll", configureForAzure: false, isPortable: false, extension: ".exe")));

            Assert.True(XNode.DeepEquals(WebConfigTemplatePortable,
                                         WebConfigTransform.Transform(null, "test.dll", configureForAzure: false, isPortable: true, extension: null)));
        }
예제 #14
0
        public void WebConfigTransform_fixes_aspnetcore_casing()
        {
            var input = WebConfigTransformTemplates.WebConfigTemplate;

            input.Descendants("add").Single().SetAttributeValue("name", "aspnetcore");

            Assert.True(XNode.DeepEquals(WebConfigTransformTemplates.WebConfigTemplate,
                                         WebConfigTransform.Transform(input, "test.dll", configureForAzure: false, useAppHost: true, extension: ".exe", aspNetCoreModuleName: null, aspNetCoreHostingModel: null, environmentName: null)));
        }
예제 #15
0
        public void WebConfigTransform_UsingAspNetCoreModule_SupportsOutOfProc(string elementName, string attributeName, string attributeValue)
        {
            // Template uses AspNetCoreModuleV1
            var input = WebConfigTransformTemplates.WebConfigTemplate;

            var output = WebConfigTransform.Transform(input, "test.dll", configureForAzure: false, useAppHost: true, extension: ".exe", aspNetCoreModuleName: null, aspNetCoreHostingModel: attributeValue, environmentName: null);

            Assert.Equal(attributeValue, (string)output.Descendants(elementName).Single().Attribute(attributeName));
        }
예제 #16
0
        public void WebConfigTransform_overwrites_stdoutLogPath_for_Azure()
        {
            var input  = WebConfigTransformTemplates.WebConfigTemplate;
            var output = WebConfigTransform.Transform(input, "test.dll", configureForAzure: true, useAppHost: true, extension: ".exe", aspNetCoreModuleName: null, aspNetCoreHostingModel: null, environmentName: null);

            Assert.Equal(
                @"\\?\%home%\LogFiles\stdout",
                (string)output.Descendants("aspNetCore").Single().Attribute("stdoutLogFile"));
        }
예제 #17
0
        public void WebConfigTransform_fixes_aspnetcore_casing()
        {
            var input = WebConfigTemplate;

            input.Descendants("add").Single().SetAttributeValue("name", "aspnetcore");

            Assert.True(XNode.DeepEquals(WebConfigTemplate,
                                         WebConfigTransform.Transform(input, "test.exe", configureForAzure: false, isPortable: false)));
        }
예제 #18
0
        public void WebConfigTransform_overwrites_stdoutLogPath_for_Azure()
        {
            var input  = WebConfigTemplate;
            var output = WebConfigTransform.Transform(input, "test.exe", configureForAzure: true, isPortable: false);

            Assert.Equal(
                @"\\?\%home%\LogFiles\stdout",
                (string)output.Descendants("aspNetCore").Single().Attribute("stdoutLogFile"));
        }
예제 #19
0
        public void WebConfigTransform_wont_override_custom_values(string elementName, string attributeName, string attributeValue)
        {
            var input = WebConfigTemplate;

            input.Descendants(elementName).Single().SetAttributeValue(attributeName, attributeValue);

            var output = WebConfigTransform.Transform(input, "test.dll", configureForAzure: false, useAppHost: true, extension: ".exe", aspNetCoreHostingModel: null, environmentName: null);

            Assert.Equal(attributeValue, (string)output.Descendants(elementName).Single().Attribute(attributeName));
        }
예제 #20
0
        public void WebConfigTransform_wont_override_custom_values(string elementName, string attributeName, string attributeValue)
        {
            var input = WebConfigTemplate;

            input.Descendants(elementName).Single().SetAttributeValue(attributeName, attributeValue);

            var output = WebConfigTransform.Transform(input, "test.exe", configureForAzure: false, isPortable: false);

            Assert.Equal(attributeValue, (string)output.Descendants(elementName).Single().Attribute(attributeName));
        }
예제 #21
0
        public void WebConfigTransform_will_UseHostingModel_FromWebConfigIfPresent(string elementName, string attributeName, string attributeValue)
        {
            var input = WebConfigTransformTemplates.WebConfigTemplate;

            input.Descendants(elementName).Single().SetAttributeValue(attributeName, attributeValue);

            var output = WebConfigTransform.Transform(input, "test.dll", configureForAzure: false, useAppHost: true, extension: ".exe", aspNetCoreModuleName: null, aspNetCoreHostingModel: "foo", environmentName: null);

            Assert.Equal(attributeValue, (string)output.Descendants(elementName).Single().Attribute(attributeName));
        }
예제 #22
0
        public void WebConfigTransform_adds_stdoutLogEnabled_if_attribute_is_missing()
        {
            var input = WebConfigTransformTemplates.WebConfigTemplate;

            input.Descendants("aspNetCore").Attributes("stdoutLogEnabled").Remove();

            Assert.Equal(
                "false",
                (string)WebConfigTransform.Transform(input, "test.dll", configureForAzure: false, useAppHost: true, extension: ".exe", aspNetCoreModuleName: null, aspNetCoreHostingModel: null, environmentName: null)
                .Descendants().Attributes("stdoutLogEnabled").Single());
        }
예제 #23
0
        public void WebConfigTransform_configures_portable_apps_correctly()
        {
            var aspNetCoreElement =
                WebConfigTransform.Transform(WebConfigTemplate, "test.exe", configureForAzure: false, isPortable: true)
                .Descendants("aspNetCore").Single();

            Assert.True(XNode.DeepEquals(
                            XDocument.Parse(@"<aspNetCore processPath=""dotnet"" arguments="".\test.exe"" stdoutLogEnabled=""false""
                     stdoutLogFile="".\logs\stdout"" />").Root,
                            aspNetCoreElement));
        }
예제 #24
0
        public void WebConfigTransform_adds_stdoutLogEnabled_if_attribute_is_missing()
        {
            var input = WebConfigTemplate;

            input.Descendants("aspNetCore").Attributes("stdoutLogEnabled").Remove();

            Assert.Equal(
                "false",
                (string)WebConfigTransform.Transform(input, "test.exe", configureForAzure: false, isPortable: false)
                .Descendants().Attributes("stdoutLogEnabled").Single());
        }
예제 #25
0
        public void WebConfigTransform_configures_full_framework_apps_correctly()
        {
            var aspNetCoreElement =
                WebConfigTransform.Transform(WebConfigTransformTemplates.WebConfigTemplate, "test.exe", configureForAzure: false, useAppHost: false, extension: ".exe", aspNetCoreModuleName: null, aspNetCoreHostingModel: null, environmentName: null)
                .Descendants("aspNetCore").Single();

            Assert.True(XNode.DeepEquals(
                            XDocument.Parse(@"<aspNetCore processPath="".\test.exe"" stdoutLogEnabled=""false""
                     stdoutLogFile="".\logs\stdout"" />").Root,
                            aspNetCoreElement));
        }
예제 #26
0
        public void WebConfigTransform_adds_missing_elements(string[] elementNames)
        {
            var input = WebConfigTemplate;

            foreach (var elementName in elementNames)
            {
                input.Descendants(elementName).Remove();
            }

            Assert.True(XNode.DeepEquals(WebConfigTemplate,
                                         WebConfigTransform.Transform(input, "test.exe", configureForAzure: false, isPortable: false)));
        }
예제 #27
0
        private bool VerifyMissingElementCreated(params string[] elementNames)
        {
            var input = WebConfigTemplate;

            foreach (var elementName in elementNames)
            {
                input.Descendants(elementName).Remove();
            }

            return(XNode.DeepEquals(WebConfigTemplate,
                                    WebConfigTransform.Transform(input, "test.exe", configureForAzure: false, isPortable: false)));
        }
예제 #28
0
        public void WebConfigTransform_wont_override_existing_args_for_portable_apps(string inputArguments, string outputArguments)
        {
            var input = WebConfigTemplate;

            input.Descendants("aspNetCore").Single().SetAttributeValue("arguments", inputArguments);

            var aspNetCoreElement =
                WebConfigTransform.Transform(input, "myapp.dll", configureForAzure: false, isPortable: true)
                .Descendants("aspNetCore").Single();

            Assert.Equal(outputArguments, (string)aspNetCoreElement.Attribute("arguments"));
        }
예제 #29
0
        public void WebConfigTransform_removes_LAUNCHER_ARGS_from_arguments_for_standalone_apps(string inputArguments, string outputArguments)
        {
            var input = WebConfigTemplate;

            input.Descendants("aspNetCore").Single().SetAttributeValue("arguments", inputArguments);

            var aspNetCoreElement =
                WebConfigTransform.Transform(input, "test.exe", configureForAzure: false, isPortable: false)
                .Descendants("aspNetCore").Single();

            Assert.Equal(outputArguments, (string)aspNetCoreElement.Attribute("arguments"));
        }
예제 #30
0
        public void WebConfigTransform_adds_missing_elements(string[] elementNames)
        {
            var input = WebConfigTransformTemplates.WebConfigTemplate;

            foreach (var elementName in elementNames)
            {
                input.Descendants(elementName).Remove();
            }

            Assert.True(XNode.DeepEquals(WebConfigTransformTemplates.WebConfigTemplate,
                                         WebConfigTransform.Transform(input, "test.dll", configureForAzure: false, useAppHost: true, extension: ".exe", aspNetCoreModuleName: null, aspNetCoreHostingModel: null, environmentName: null)));
        }
 protected void Page_Load(object sender, EventArgs e)
 {
     var transform = new WebConfigTransform();
     litOutput.Text = HttpUtility.HtmlEncode(transform.Process("Release"));
 }