public static ITestHost CreateJobHost( IOptions <DurableTaskOptions> options, string storageProvider, ILoggerProvider loggerProvider, INameResolver nameResolver, IDurableHttpMessageHandlerFactory durableHttpMessageHandler, ILifeCycleNotificationHelper lifeCycleNotificationHelper, IMessageSerializerSettingsFactory serializerSettingsFactory, IApplicationLifetimeWrapper shutdownNotificationService = null, Action <ITelemetry> onSend = null) { var config = new JobHostConfiguration { HostId = "durable-task-host" }; config.TypeLocator = TestHelpers.GetTypeLocator(); var connectionResolver = new WebJobsConnectionStringProvider(); var loggerFactory = new LoggerFactory(); loggerFactory.AddProvider(loggerProvider); IDurabilityProviderFactory orchestrationServiceFactory = new AzureStorageDurabilityProviderFactory( options, connectionResolver, nameResolver, loggerFactory); var extension = new DurableTaskExtension( options, loggerFactory, nameResolver, orchestrationServiceFactory, shutdownNotificationService ?? new TestHostShutdownNotificationService(), durableHttpMessageHandler, lifeCycleNotificationHelper, serializerSettingsFactory); config.UseDurableTask(extension); // Mock INameResolver for not setting EnvironmentVariables. if (nameResolver != null) { config.AddService(nameResolver); } // Performance is *significantly* worse when dashboard logging is enabled, at least // when running in the storage emulator. Disabling to keep tests running quickly. config.DashboardConnectionString = null; // Add test logger config.LoggerFactory = loggerFactory; var host = new JobHost(config); return(new FunctionsV1HostWrapper(host, options, connectionResolver)); }
public static JobHost CreateJobHost( IOptions <DurableTaskOptions> options, ILoggerProvider loggerProvider, INameResolver nameResolver) { var config = new JobHostConfiguration { HostId = "durable-task-host" }; config.TypeLocator = TestHelpers.GetTypeLocator(); var connectionResolver = new WebJobsConnectionStringProvider(); var loggerFactory = new LoggerFactory(); loggerFactory.AddProvider(loggerProvider); var extension = new DurableTaskExtension(options, loggerFactory, nameResolver, connectionResolver); config.UseDurableTask(extension); // Mock INameResolver for not setting EnvironmentVariables. if (nameResolver != null) { config.AddService(nameResolver); } // Performance is *significantly* worse when dashboard logging is enabled, at least // when running in the storage emulator. Disabling to keep tests running quickly. config.DashboardConnectionString = null; // Add test logger config.LoggerFactory = loggerFactory; var host = new JobHost(config); return(host); }
public static ITestHost CreateJobHost( IOptions <DurableTaskOptions> options, string storageProvider, ILoggerProvider loggerProvider, INameResolver nameResolver, IDurableHttpMessageHandlerFactory durableHttpMessageHandler, ILifeCycleNotificationHelper lifeCycleNotificationHelper, IMessageSerializerSettingsFactory serializerSettingsFactory, IApplicationLifetimeWrapper shutdownNotificationService = null, Action <ITelemetry> onSend = null, #pragma warning disable CS0612 // Type or member is obsolete IPlatformInformationService platformInformationService = null) #pragma warning restore CS0612 // Type or member is obsolete { var config = new JobHostConfiguration { HostId = "durable-task-host" }; config.TypeLocator = TestHelpers.GetTypeLocator(); var connectionResolver = new WebJobsConnectionStringProvider(); var loggerFactory = new LoggerFactory(); loggerFactory.AddProvider(loggerProvider); // Unless otherwise specified, use legacy partition management for tests as it makes the task hubs start up faster. // These tests run on a single task hub workers, so they don't test partition management anyways, and that is tested // in the DTFx repo. if (!options.Value.StorageProvider.ContainsKey(nameof(AzureStorageOptions.UseLegacyPartitionManagement))) { options.Value.StorageProvider.Add(nameof(AzureStorageOptions.UseLegacyPartitionManagement), true); } platformInformationService = platformInformationService ?? TestHelpers.GetMockPlatformInformationService(); IDurabilityProviderFactory orchestrationServiceFactory = new AzureStorageDurabilityProviderFactory( options, connectionResolver, nameResolver, loggerFactory, platformInformationService); var extension = new DurableTaskExtension( options, loggerFactory, nameResolver, new[] { orchestrationServiceFactory }, shutdownNotificationService ?? new TestHostShutdownNotificationService(), durableHttpMessageHandler, lifeCycleNotificationHelper, serializerSettingsFactory, platformInformationService); config.UseDurableTask(extension); // Mock INameResolver for not setting EnvironmentVariables. if (nameResolver != null) { config.AddService(nameResolver); } // Performance is *significantly* worse when dashboard logging is enabled, at least // when running in the storage emulator. Disabling to keep tests running quickly. config.DashboardConnectionString = null; // Add test logger config.LoggerFactory = loggerFactory; var host = new JobHost(config); return(new FunctionsV1HostWrapper(host, options, connectionResolver)); }