コード例 #1
0
        public void Configure_FileWatching()
        {
            var settings = new Dictionary <string, string>
            {
                { ConfigurationPath.Combine(ConfigurationSectionNames.JobHost, "fileWatchingEnabled"), "true" }
            };

            ScriptJobHostOptionsSetup setup = CreateSetupWithConfiguration(settings);

            var options = new ScriptJobHostOptions();

            // Validate default (this should be in another test - migrated here for now)
            Assert.True(options.FileWatchingEnabled);

            setup.Configure(options);

            Assert.True(options.FileWatchingEnabled);
            Assert.Equal(1, options.WatchDirectories.Count);
            Assert.Equal("node_modules", options.WatchDirectories.ElementAt(0));

            Assert.Equal(2, options.WatchFiles.Count);
            Assert.Contains("host.json", options.WatchFiles);
            Assert.Contains("function.json", options.WatchFiles);

            // File watching disabled
            settings[ConfigurationPath.Combine(ConfigurationSectionNames.JobHost, "fileWatchingEnabled")] = bool.FalseString;

            setup = CreateSetupWithConfiguration(settings);

            options = new ScriptJobHostOptions();
            setup.Configure(options);

            Assert.False(options.FileWatchingEnabled);

            // File watching enabled, watch directories
            settings[ConfigurationPath.Combine(ConfigurationSectionNames.JobHost, "fileWatchingEnabled")]   = bool.TrueString;
            settings[ConfigurationPath.Combine(ConfigurationSectionNames.JobHost, "watchDirectories", "0")] = "Shared";
            settings[ConfigurationPath.Combine(ConfigurationSectionNames.JobHost, "watchDirectories", "1")] = "Tools";
            settings[ConfigurationPath.Combine(ConfigurationSectionNames.JobHost, "watchFiles", "0")]       = "myFirstFile.ext";
            settings[ConfigurationPath.Combine(ConfigurationSectionNames.JobHost, "watchFiles", "1")]       = "mySecondFile.ext";

            setup = CreateSetupWithConfiguration(settings);

            options = new ScriptJobHostOptions();
            setup.Configure(options);

            Assert.True(options.FileWatchingEnabled);
            Assert.Equal(3, options.WatchDirectories.Count);
            Assert.Equal("node_modules", options.WatchDirectories.ElementAt(0));
            Assert.Equal("Shared", options.WatchDirectories.ElementAt(1));
            Assert.Equal("Tools", options.WatchDirectories.ElementAt(2));

            Assert.Equal(4, options.WatchFiles.Count);
            Assert.Contains("host.json", options.WatchFiles);
            Assert.Contains("function.json", options.WatchFiles);
            Assert.Contains("myFirstFile.ext", options.WatchFiles);
            Assert.Contains("mySecondFile.ext", options.WatchFiles);
        }
コード例 #2
0
        private ScriptJobHostOptions GetConfiguredOptions(Dictionary <string, string> settings, IEnvironment environment = null)
        {
            ScriptJobHostOptionsSetup setup = CreateSetupWithConfiguration(settings, environment);

            var options = new ScriptJobHostOptions();

            setup.Configure(options);

            return(options);
        }