public void Configure_FileWatching() { var settings = new Dictionary <string, string> { { ConfigurationPath.Combine(ConfigurationSectionNames.JobHost, "fileWatchingEnabled"), "true" } }; ScriptHostOptionsSetup 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(3, options.WatchFiles.Count); Assert.Contains("host.json", options.WatchFiles); Assert.Contains("function.json", options.WatchFiles); Assert.Contains("proxies.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(5, options.WatchFiles.Count); Assert.Contains("host.json", options.WatchFiles); Assert.Contains("function.json", options.WatchFiles); Assert.Contains("proxies.json", options.WatchFiles); Assert.Contains("myFirstFile.ext", options.WatchFiles); Assert.Contains("mySecondFile.ext", options.WatchFiles); }
private ScriptJobHostOptions GetConfiguredOptions(Dictionary <string, string> settings, IEnvironment environment = null) { ScriptHostOptionsSetup setup = CreateSetupWithConfiguration(settings, environment); var options = new ScriptJobHostOptions(); setup.Configure(options); return(options); }