/// <summary>
        /// Start web host.
        /// </summary>
        /// <returns>IHost task.</returns>
        private async Task <IHost> StartHostAsync()
        {
            var localSettings = new Dictionary <string, string>
            {
                ["AzureWebJobsStorage"] = "UseDevelopmentStorage=true",
            };

            var host = new HostBuilder()
                       .ConfigureWebJobs(builder =>
            {
                builder.AddCosmosDB();
                var serviceOperationProvider = new ServiceOperationsProvider();
                var operationProvider        = new CosmosDBServiceOperationProvider();
                builder.AddExtension(new CosmosDBServiceProvider(serviceOperationProvider, operationProvider));
                builder.Services.TryAddSingleton <CosmosDBServiceOperationProvider>();
            })
                       .ConfigureLogging(b =>
            {
                b.AddProvider(this.loggerProvider);
            })
                       .ConfigureAppConfiguration(c =>
            {
                c.AddInMemoryCollection(new[]
                {
                    new KeyValuePair <string, string>("AzureWebJobsStorage", "UseDevelopmentStorage=true"),
                    new KeyValuePair <string, string>("FUNCTIONS_WORKER_RUNTIME", "dotnet"),
                });
            })
                       .Build();

            await host.StartAsync();

            return(host);
        }
示例#2
0
        public void OperationTriggerCapabilityTest()
        {
            var operations    = new CosmosDBServiceOperationProvider();
            var apiCapability = operations.GetService().Properties.Capabilities as ApiCapability[];

            Assert.Single(apiCapability);
            Assert.Equal(ApiCapability.Triggers, apiCapability[0]);
            this.outputLogger.WriteLine("Connector supports only trigger");
        }
示例#3
0
        public void OperationConnectionParametersTest()
        {
            var operations                 = new CosmosDBServiceOperationProvider();
            var connectionParameters       = operations.GetService().Properties.ConnectionParameters as ConnectionParameters;
            var connectionStringParameters = new ConnectionStringParameters
            {
                Type            = ConnectionStringType.SecureString,
                ParameterSource = ConnectionParameterSource.AppConfiguration,
                UIDefinition    = new UIDefinition
                {
                    DisplayName = "Connection String",
                    Tooltip     = "Provide Azure Cosmos db Connection String",
                    Constraints = new Constraints
                    {
                        Required = "true",
                    },
                    Description = "Azure Cosmos db Connection String",
                },
            };

            Assert.Equal(connectionParameters.ConnectionString.ToJson(), connectionStringParameters.ToJson());
            this.outputLogger.WriteLine("Connection parameters are matched");
        }