private IEnumerable <IWorkerProvider> TestReadWorkerProviderFromConfig(string language, string json, string[] arguments, Mock <ILogger <object> > mockLogger) { string rootPath = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString()); string workerPath = Path.Combine(rootPath, language); try { Directory.CreateDirectory(workerPath); File.WriteAllText(Path.Combine(workerPath, ScriptConstants.WorkerConfigFileName), json); var scriptHostConfig = new ScriptHostConfiguration(); var scriptSettingsManager = new ScriptSettingsManager(); var settings = new List <KeyValuePair <string, string> > { new KeyValuePair <string, string>("workers:config:path", rootPath) }; scriptSettingsManager.SetConfigurationFactory(() => new ConfigurationBuilder() .AddInMemoryCollection(settings).Build()); return(GenericWorkerProvider.ReadWorkerProviderFromConfig(scriptHostConfig, mockLogger.Object, scriptSettingsManager)); } finally { if (Directory.Exists(rootPath)) { Directory.Delete(rootPath, true); } } }
public ApplicationInsightsTestFixture(string scriptRoot, string testId) { HostSettings = new WebHostSettings { IsSelfHost = true, ScriptPath = Path.Combine(Environment.CurrentDirectory, scriptRoot), LogPath = Path.Combine(Path.GetTempPath(), @"Functions"), SecretsPath = Environment.CurrentDirectory // not used }; _testServer = new TestServer( AspNetCore.WebHost.CreateDefaultBuilder() .UseStartup <Startup>() .ConfigureServices(services => { var settingsManager = new ScriptSettingsManager(); settingsManager.SetConfigurationFactory(() => { return(new ConfigurationBuilder() .AddInMemoryCollection(new Dictionary <string, string> { [EnvironmentSettingNames.AppInsightsInstrumentationKey] = TestChannelLoggerProviderFactory.ApplicationInsightsKey }) .AddEnvironmentVariables() .Build()); }); services.Replace(new ServiceDescriptor(typeof(ScriptSettingsManager), settingsManager)); services.Replace(new ServiceDescriptor(typeof(WebHostSettings), HostSettings)); services.Replace(new ServiceDescriptor(typeof(ILoggerProviderFactory), new TestChannelLoggerProviderFactory(Channel))); services.Replace(new ServiceDescriptor(typeof(ISecretManager), new TestSecretManager())); })); var scriptConfig = _testServer.Host.Services.GetService <WebHostResolver>().GetScriptHostConfiguration(HostSettings); InitializeConfig(scriptConfig); HttpClient = _testServer.CreateClient(); HttpClient.BaseAddress = new Uri("https://localhost/"); TestHelpers.WaitForWebHost(HttpClient); }