public void ApplyConfiguration_Singleton() { JObject config = new JObject(); config["id"] = ID; JObject singleton = new JObject(); config["singleton"] = singleton; ScriptHostConfiguration scriptConfig = new ScriptHostConfiguration(); ScriptHost.ApplyConfiguration(config, scriptConfig); Assert.Equal(ID, scriptConfig.HostConfig.HostId); Assert.Equal(15, scriptConfig.HostConfig.Singleton.LockPeriod.TotalSeconds); Assert.Equal(1, scriptConfig.HostConfig.Singleton.ListenerLockPeriod.TotalMinutes); Assert.Equal(1, scriptConfig.HostConfig.Singleton.ListenerLockRecoveryPollingInterval.TotalMinutes); Assert.Equal(TimeSpan.MaxValue, scriptConfig.HostConfig.Singleton.LockAcquisitionTimeout); Assert.Equal(5, scriptConfig.HostConfig.Singleton.LockAcquisitionPollingInterval.TotalSeconds); singleton["lockPeriod"] = "00:00:17"; singleton["listenerLockPeriod"] = "00:00:22"; singleton["listenerLockRecoveryPollingInterval"] = "00:00:33"; singleton["lockAcquisitionTimeout"] = "00:05:00"; singleton["lockAcquisitionPollingInterval"] = "00:00:08"; ScriptHost.ApplyConfiguration(config, scriptConfig); Assert.Equal(17, scriptConfig.HostConfig.Singleton.LockPeriod.TotalSeconds); Assert.Equal(22, scriptConfig.HostConfig.Singleton.ListenerLockPeriod.TotalSeconds); Assert.Equal(33, scriptConfig.HostConfig.Singleton.ListenerLockRecoveryPollingInterval.TotalSeconds); Assert.Equal(5, scriptConfig.HostConfig.Singleton.LockAcquisitionTimeout.TotalMinutes); Assert.Equal(8, scriptConfig.HostConfig.Singleton.LockAcquisitionPollingInterval.TotalSeconds); }
public void ApplyConfiguration_FileWatching() { JObject config = new JObject(); config["id"] = ID; ScriptHostConfiguration scriptConfig = new ScriptHostConfiguration(); Assert.True(scriptConfig.FileWatchingEnabled); scriptConfig = new ScriptHostConfiguration(); config["fileWatchingEnabled"] = new JValue(true); ScriptHost.ApplyConfiguration(config, scriptConfig); Assert.True(scriptConfig.FileWatchingEnabled); Assert.Equal(1, scriptConfig.WatchDirectories.Count); Assert.Equal("node_modules", scriptConfig.WatchDirectories.ElementAt(0)); scriptConfig = new ScriptHostConfiguration(); config["fileWatchingEnabled"] = new JValue(false); ScriptHost.ApplyConfiguration(config, scriptConfig); Assert.False(scriptConfig.FileWatchingEnabled); scriptConfig = new ScriptHostConfiguration(); config["fileWatchingEnabled"] = new JValue(true); config["watchDirectories"] = new JArray("Shared", "Tools"); ScriptHost.ApplyConfiguration(config, scriptConfig); Assert.True(scriptConfig.FileWatchingEnabled); Assert.Equal(3, scriptConfig.WatchDirectories.Count); Assert.Equal("node_modules", scriptConfig.WatchDirectories.ElementAt(0)); Assert.Equal("Shared", scriptConfig.WatchDirectories.ElementAt(1)); Assert.Equal("Tools", scriptConfig.WatchDirectories.ElementAt(2)); }
public void ApplyConfiguration_Swagger() { JObject config = new JObject(); config["id"] = ID; ScriptHostConfiguration scriptConfig = new ScriptHostConfiguration(); // no swagger section ScriptHost.ApplyConfiguration(config, scriptConfig); Assert.Equal(false, scriptConfig.SwaggerEnabled); // empty swagger section JObject swagger = new JObject(); config["swagger"] = swagger; ScriptHost.ApplyConfiguration(config, scriptConfig); Assert.Equal(false, scriptConfig.SwaggerEnabled); // swagger section present, with swagger mode set to null swagger["enabled"] = string.Empty; ScriptHost.ApplyConfiguration(config, scriptConfig); Assert.Equal(false, scriptConfig.SwaggerEnabled); // swagger section present, with swagger mode set to true swagger["enabled"] = true; ScriptHost.ApplyConfiguration(config, scriptConfig); Assert.Equal(true, scriptConfig.SwaggerEnabled); // swagger section present, with swagger mode set to invalid swagger["enabled"] = "invalid"; ScriptHost.ApplyConfiguration(config, scriptConfig); Assert.Equal(false, scriptConfig.SwaggerEnabled); }
public void ApplyConfiguration_Queues() { JObject config = new JObject(); config["id"] = ID; JObject queuesConfig = new JObject(); config["queues"] = queuesConfig; ScriptHostConfiguration scriptConfig = new ScriptHostConfiguration(); ScriptHost.ApplyConfiguration(config, scriptConfig); Assert.Equal(ID, scriptConfig.HostConfig.HostId); Assert.Equal(60 * 1000, scriptConfig.HostConfig.Queues.MaxPollingInterval.TotalMilliseconds); Assert.Equal(16, scriptConfig.HostConfig.Queues.BatchSize); Assert.Equal(5, scriptConfig.HostConfig.Queues.MaxDequeueCount); Assert.Equal(8, scriptConfig.HostConfig.Queues.NewBatchThreshold); queuesConfig["maxPollingInterval"] = 5000; queuesConfig["batchSize"] = 17; queuesConfig["maxDequeueCount"] = 3; queuesConfig["newBatchThreshold"] = 123; ScriptHost.ApplyConfiguration(config, scriptConfig); Assert.Equal(5000, scriptConfig.HostConfig.Queues.MaxPollingInterval.TotalMilliseconds); Assert.Equal(17, scriptConfig.HostConfig.Queues.BatchSize); Assert.Equal(3, scriptConfig.HostConfig.Queues.MaxDequeueCount); Assert.Equal(123, scriptConfig.HostConfig.Queues.NewBatchThreshold); }
public void ApplyConfiguration_Http() { JObject config = new JObject(); config["id"] = ID; JObject http = new JObject(); config["http"] = http; ScriptHostConfiguration scriptConfig = new ScriptHostConfiguration(); ScriptHost.ApplyConfiguration(config, scriptConfig); Assert.Equal(ScriptConstants.DefaultHttpRoutePrefix, scriptConfig.HttpConfiguration.RoutePrefix); Assert.Equal(false, scriptConfig.HttpConfiguration.DynamicThrottlesEnabled); Assert.Equal(scriptConfig.HttpConfiguration.MaxConcurrentRequests, DataflowBlockOptions.Unbounded); Assert.Equal(scriptConfig.HttpConfiguration.MaxOutstandingRequests, DataflowBlockOptions.Unbounded); http["routePrefix"] = "myprefix"; http["dynamicThrottlesEnabled"] = true; http["maxConcurrentRequests"] = 5; http["maxOutstandingRequests"] = 10; ScriptHost.ApplyConfiguration(config, scriptConfig); Assert.Equal("myprefix", scriptConfig.HttpConfiguration.RoutePrefix); Assert.Equal(true, scriptConfig.HttpConfiguration.DynamicThrottlesEnabled); Assert.Equal(scriptConfig.HttpConfiguration.MaxConcurrentRequests, 5); Assert.Equal(scriptConfig.HttpConfiguration.MaxOutstandingRequests, 10); }
public void ApplyConfiguration_TimeoutDefaultsNull_IfNotDynamic() { JObject config = new JObject(); config["id"] = ID; ScriptHostConfiguration scriptConfig = new ScriptHostConfiguration(); ScriptHost.ApplyConfiguration(config, scriptConfig); Assert.Null(scriptConfig.FunctionTimeout); }
public void ApplyConfiguration_TopLevel() { JObject config = new JObject(); config["id"] = ID; ScriptHostConfiguration scriptConfig = new ScriptHostConfiguration(); ScriptHost.ApplyConfiguration(config, scriptConfig); Assert.Equal(ID, scriptConfig.HostConfig.HostId); }
public void ApplyConfiguration_AppliesTimeout() { JObject config = new JObject(); config["id"] = ID; ScriptHostConfiguration scriptConfig = new ScriptHostConfiguration(); Assert.Null(scriptConfig.FunctionTimeout); config["functionTimeout"] = "00:00:30"; ScriptHost.ApplyConfiguration(config, scriptConfig); Assert.Equal(TimeSpan.FromSeconds(30), scriptConfig.FunctionTimeout); }
public void ApplyConfiguration_NoTimeoutLimits_IfNotDynamic() { JObject config = new JObject(); config["id"] = ID; ScriptHostConfiguration scriptConfig = new ScriptHostConfiguration(); config["functionTimeout"] = "00:05:01"; ScriptHost.ApplyConfiguration(config, scriptConfig); Assert.Equal(TimeSpan.FromSeconds(301), scriptConfig.FunctionTimeout); config["functionTimeout"] = "00:00:00.9"; ScriptHost.ApplyConfiguration(config, scriptConfig); Assert.Equal(TimeSpan.FromMilliseconds(900), scriptConfig.FunctionTimeout); }
public void ApplyConfiguration_AppliesFunctionsFilter() { JObject config = new JObject(); config["id"] = ID; ScriptHostConfiguration scriptConfig = new ScriptHostConfiguration(); Assert.Null(scriptConfig.Functions); config["functions"] = new JArray("Function1", "Function2"); ScriptHost.ApplyConfiguration(config, scriptConfig); Assert.Equal(2, scriptConfig.Functions.Count); Assert.Equal("Function1", scriptConfig.Functions.ElementAt(0)); Assert.Equal("Function2", scriptConfig.Functions.ElementAt(1)); }
public void ApplyConfiguration_Tracing() { JObject config = new JObject(); config["id"] = ID; JObject tracing = new JObject(); config["tracing"] = tracing; ScriptHostConfiguration scriptConfig = new ScriptHostConfiguration(); Assert.Equal(TraceLevel.Info, scriptConfig.HostConfig.Tracing.ConsoleLevel); tracing["consoleLevel"] = "Verbose"; ScriptHost.ApplyConfiguration(config, scriptConfig); Assert.Equal(TraceLevel.Verbose, scriptConfig.HostConfig.Tracing.ConsoleLevel); }
public void ApplyConfiguration_TimeoutDefaults5Minutes_IfDynamic() { JObject config = new JObject(); config["id"] = ID; ScriptHostConfiguration scriptConfig = new ScriptHostConfiguration(); try { _settingsManager.SetSetting(EnvironmentSettingNames.AzureWebsiteSku, "Dynamic"); ScriptHost.ApplyConfiguration(config, scriptConfig); Assert.Equal(TimeSpan.FromMinutes(5), scriptConfig.FunctionTimeout); } finally { _settingsManager.SetSetting(EnvironmentSettingNames.AzureWebsiteSku, null); } }
public void ApplyConfiguration_Http() { JObject config = new JObject(); config["id"] = ID; JObject http = new JObject(); config["http"] = http; ScriptHostConfiguration scriptConfig = new ScriptHostConfiguration(); ScriptHost.ApplyConfiguration(config, scriptConfig); Assert.Equal(ScriptConstants.DefaultHttpRoutePrefix, scriptConfig.HttpRoutePrefix); http["routePrefix"] = "myprefix"; ScriptHost.ApplyConfiguration(config, scriptConfig); Assert.Equal("myprefix", scriptConfig.HttpRoutePrefix); }
public void ApplyConfiguration_AppliesTimeoutLimits_IfDynamic() { JObject config = new JObject(); config["id"] = ID; ScriptHostConfiguration scriptConfig = new ScriptHostConfiguration(); try { _settingsManager.SetSetting(EnvironmentSettingNames.AzureWebsiteSku, "Dynamic"); config["functionTimeout"] = "00:05:01"; Assert.Throws <ArgumentException>(() => ScriptHost.ApplyConfiguration(config, scriptConfig)); config["functionTimeout"] = "00:00:00.9"; Assert.Throws <ArgumentException>(() => ScriptHost.ApplyConfiguration(config, scriptConfig)); } finally { _settingsManager.SetSetting(EnvironmentSettingNames.AzureWebsiteSku, null); } }
public void ApplyConfiguration_Tracing() { JObject config = new JObject(); config["id"] = ID; JObject tracing = new JObject(); config["tracing"] = tracing; ScriptHostConfiguration scriptConfig = new ScriptHostConfiguration(); Assert.Equal(TraceLevel.Info, scriptConfig.HostConfig.Tracing.ConsoleLevel); Assert.Equal(FileLoggingMode.Never, scriptConfig.FileLoggingMode); tracing["consoleLevel"] = "Verbose"; tracing["fileLoggingMode"] = "Always"; ScriptHost.ApplyConfiguration(config, scriptConfig); Assert.Equal(TraceLevel.Verbose, scriptConfig.HostConfig.Tracing.ConsoleLevel); Assert.Equal(FileLoggingMode.Always, scriptConfig.FileLoggingMode); tracing["fileLoggingMode"] = "DebugOnly"; ScriptHost.ApplyConfiguration(config, scriptConfig); Assert.Equal(FileLoggingMode.DebugOnly, scriptConfig.FileLoggingMode); }