Exemplo n.º 1
0
        public void RewritesCustomRuntimeSettings()
        {
            string customSettingsBefore =
                "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
                "<!--" +
                "commentsAreSupported" +
                "-->" +
                "<configuration>" +
                "<someConfig>withItsValue</someConfig>" +
                $"<runtime><AppContextSwitchOverrides value=\"Switch.System.IO.UseLegacyPathHandling=false\"/></runtime>" +
                "</configuration>";

            string customSettingsAfter =
                "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
                "<!--" +
                "commentsAreSupported" +
                "-->" +
                "<configuration>" +
                "<someConfig>withItsValue</someConfig>" +
                $"<runtime><AppContextSwitchOverrides value=\"Switch.System.IO.UseLegacyPathHandling=false\"/>{GcSettings}</runtime>" +
                "</configuration>";

            using (var source = new StringReader(customSettingsBefore))
                using (var destination = new Utf8StringWriter())
                {
                    AppConfigGenerator.Generate(Job.Default, source, destination, Resolver);

                    AssertAreEqualIgnoringWhitespacesAndCase(customSettingsAfter, destination.ToString());
                }
        }
Exemplo n.º 2
0
        public void GeneratesRightJitSettings(Jit jit, string expectedRuntimeNode)
        {
            const string customSettings =
                "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
                "<configuration>" +
                "<someConfig>withItsValue</someConfig>" +
                "</configuration>";

            string customSettingsAndJit =
                "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
                "<configuration>" +
                "<someConfig>withItsValue</someConfig>" +
                expectedRuntimeNode +
                "</configuration>" + Environment.NewLine;

            using (var source = new StringReader(customSettings))
                using (var destination = new Utf8StringWriter())
                {
                    AppConfigGenerator.Generate(new Job {
                        Env = { Jit = jit }
                    }.Freeze(), source, destination, Resolver);

                    AssertAreEqualIgnoringWhitespacesAndCase(customSettingsAndJit, destination.ToString());
                }
        }
Exemplo n.º 3
0
        public void LeavsStartupSettingsIntactForNonPrivateBuildsOfClr()
        {
            const string input =
                "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
                "<configuration>" +
                "<startup><supportedRuntime version=\"v4.0\" sku=\".NETFramework,Version=v4.6.1\" /></startup>" +
                "</configuration>";

            string withoutStartup =
                "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
                "<configuration>" +
                "<startup><supportedRuntime version=\"v4.0\" sku=\".NETFramework,Version=v4.6.1\" /></startup>" +
                "<runtime/>" +
                "</configuration>" + Environment.NewLine;

            using (var source = new StringReader(input))
                using (var destination = new Utf8StringWriter())
                {
                    AppConfigGenerator.Generate(new Job {
                        Environment = { Runtime = ClrRuntime.Net461 }
                    }.Freeze(), source, destination, Resolver);

                    AssertAreEqualIgnoringWhitespacesAndCase(withoutStartup, destination.ToString());
                }
        }
Exemplo n.º 4
0
        public void RewritesCustomSettings()
        {
            string customSettingsWithoutRuntimeNode =
                "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
                "<!--" +
                "commentsAreSupported" +
                "-->" +
                "<configuration>" +
                "<someConfig>withItsValue</someConfig>" +
                "</configuration>";

            string customSettingsWithRuntimeNode =
                "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
                "<!--" +
                "commentsAreSupported" +
                "-->" +
                "<configuration>" +
                "<someConfig>withItsValue</someConfig>" +
                $"<runtime>{GcSettings}</runtime>" +
                "</configuration>";

            using (var source = new StringReader(customSettingsWithoutRuntimeNode))
                using (var destination = new Utf8StringWriter())
                {
                    AppConfigGenerator.Generate(Job.Default, source, destination, Resolver);

                    AssertAreEqualIgnoringWhitespacesAndCase(customSettingsWithRuntimeNode, destination.ToString());
                }
        }
Exemplo n.º 5
0
        public void GeneratesMinimalRequiredAppConfigForEmptySource()
        {
            using (var destination = new Utf8StringWriter())
            {
                const string expectedMinimal =
                    "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
                    "<configuration>" +
                    "<runtime/>" +
                    "</configuration>";

                AppConfigGenerator.Generate(Job.Default, TextReader.Null, destination, Resolver);

                AssertAreEqualIgnoringWhitespacesAndCase(expectedMinimal, destination.ToString());
            }
        }
Exemplo n.º 6
0
        public void GeneratesMinimalRequiredAppConfigForAlmostEmptySource()
        {
            using (var source = new StringReader("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"))
                using (var destination = new Utf8StringWriter())
                {
                    string expectedMinimal =
                        "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
                        "<configuration>" +
                        $"<runtime>{GcSettings}</runtime>" +
                        "</configuration>";

                    AppConfigGenerator.Generate(Job.Default, source, destination, Resolver);

                    AssertAreEqualIgnoringWhitespacesAndCase(expectedMinimal, destination.ToString());
                }
        }
    public void Start()
    {
        var configFile = AppConfigGenerator.Generate(connectionString, connectionStringsOverrides);

        //HINT: we need to generate custom app.config because v1 sqltransports does a direct read from ConfigurationManager
        using (AppConfig.Change(configFile.FullName))
        {
            configure.UseTransport <SqlServer>();

            startableBus = configure.UnicastBus().CreateBus();
            bus          = startableBus.Start(() => configure.ForInstallationOn <NServiceBus.Installation.Environments.Windows>().Install());

            messageStore        = (MessageStore)configure.Builder.Build(typeof(MessageStore));
            subscriptionStore   = new SubscriptionStore();
            callbackResultStore = new CallbackResultStore();

            configure.Builder.Build <MessageDrivenSubscriptionManager>().ClientSubscribed += (sender, args) => { subscriptionStore.Increment(); };
        }
    }
Exemplo n.º 8
0
        public void RewritesCustomAssemblyBindingRedirects()
        {
            const string settingsWithBindings =
                "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
                "<configuration>" +
                "<runtime>" +
                "<assemblyBinding xmlns=\"urn:schemas-microsoft-com:asm.v1\">" +
                "<dependentAssembly>" +
                "<assemblyIdentity name=\"System.Runtime\" publicKeyToken=\"b03f5f7f11d50a3a\" culture=\"neutral\" />" +
                "<bindingRedirect oldVersion=\"0.0.0.0-4.0.20.0\" newVersion=\"4.0.20.0\" />" +
                "</dependentAssembly>" +
                "</assemblyBinding>" +
                "</runtime>" +
                "</configuration>";

            string settingsWithBindingsAndJit =
                "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
                "<configuration>" +
                "<runtime>" +
                "<assemblyBinding xmlns=\"urn:schemas-microsoft-com:asm.v1\">" +
                "<dependentAssembly>" +
                "<assemblyIdentity name=\"System.Runtime\" publicKeyToken=\"b03f5f7f11d50a3a\" culture=\"neutral\" />" +
                "<bindingRedirect oldVersion=\"0.0.0.0-4.0.20.0\" newVersion=\"4.0.20.0\" />" +
                "</dependentAssembly>" +
                "</assemblyBinding>" +
                "<useLegacyJit enabled =\"0\" />" +
                GcSettings +
                "</runtime>" +
                "</configuration>";

            using (var source = new StringReader(settingsWithBindings))
                using (var destination = new Utf8StringWriter())
                {
                    AppConfigGenerator.Generate(Job.RyuJitX64, source, destination, Resolver);

                    AssertAreEqualIgnoringWhitespacesAndCase(settingsWithBindingsAndJit, destination.ToString());
                }
        }
 public AppConfigGeneratorTests()
 {
     _appConfigGenerator = new AppConfigGenerator(new CurrentVersionDriver());
 }