Пример #1
0
        public void AddMongoClientConnection_AddingCommunityContributor_AddsSteeltoeHealthCheckWhenForced()
        {
            // Arrange
            IServiceCollection services = new ServiceCollection();

            Environment.SetEnvironmentVariable("VCAP_APPLICATION", TestHelpers.VCAP_APPLICATION);
            Environment.SetEnvironmentVariable("VCAP_SERVICES", MongoDbTestHelpers.SingleBinding_Enterprise_VCAP);

            var builder = new ConfigurationBuilder();

            builder.AddCloudFoundry();
            var config = builder.Build();

            var cm = new ConnectionStringManager(config);
            var ci = cm.Get <MongoDbConnectionInfo>();

            services.AddHealthChecks().AddMongoDb(ci.ConnectionString, name: ci.Name);

            // Act
            services.AddMongoClient(config, "steeltoe", addSteeltoeHealthChecks: true);
            var healthContributor = services.BuildServiceProvider().GetService <IHealthContributor>() as MongoDbHealthContributor;

            // Assert
            Assert.NotNull(healthContributor);
        }
        public void PostgresConnectionInfoByName()
        {
            Environment.SetEnvironmentVariable("VCAP_SERVICES", PostgresTestHelpers.TwoServerVCAP_EDB);
            var cm       = new ConnectionStringManager(new ConfigurationBuilder().AddCloudFoundry().Build());
            var connInfo = cm.Get <PostgresConnectionInfo>("myPostgres");

            Assert.NotNull(connInfo);
            Assert.Equal("Postgres-myPostgres", connInfo.Name);
        }
Пример #3
0
        public void MysqlConnectionInfo()
        {
            var cm       = new ConnectionStringManager(new ConfigurationBuilder().Build());
            var connInfo = cm.Get <MySqlConnectionInfo>();

            Assert.NotNull(connInfo);
            Assert.Equal("Server=localhost;Port=3306;", connInfo.ConnectionString);
            Assert.Equal("MySql", connInfo.Name);
        }
        public void MongoDbConnectionInfo()
        {
            var cm       = new ConnectionStringManager(new ConfigurationBuilder().Build());
            var connInfo = cm.Get <MongoDbConnectionInfo>();

            Assert.NotNull(connInfo);
            Assert.Equal("mongodb://localhost:27017", connInfo.ConnectionString);
            Assert.Equal("MongoDb", connInfo.Name);
        }
Пример #5
0
        public void RabbitMQConnectionInfo()
        {
            var cm       = new ConnectionStringManager(new ConfigurationBuilder().Build());
            var connInfo = cm.Get <RabbitMQConnectionInfo>();

            Assert.NotNull(connInfo);
            Assert.Equal("amqp://127.0.0.1:5672/", connInfo.ConnectionString);
            Assert.Equal("RabbitMQ", connInfo.Name);
        }
Пример #6
0
        public void RedisConnectionInfo()
        {
            var cm       = new ConnectionStringManager(new ConfigurationBuilder().Build());
            var connInfo = cm.Get <RedisConnectionInfo>();

            Assert.NotNull(connInfo);
            Assert.Equal("localhost:6379,allowAdmin=false,abortConnect=true,resolveDns=false,ssl=false", connInfo.ConnectionString);
            Assert.Equal("Redis", connInfo.Name);
        }
Пример #7
0
        public void PostgresConnectionInfo()
        {
            var cm       = new ConnectionStringManager(new ConfigurationBuilder().Build());
            var connInfo = cm.Get <PostgresConnectionInfo>();

            Assert.NotNull(connInfo);
            Assert.Equal("Host=localhost;Port=5432;", connInfo.ConnectionString);
            Assert.Equal("Postgres", connInfo.Name);
        }
Пример #8
0
        public void SqlServerConnectionInfo()
        {
            var cm       = new ConnectionStringManager(new ConfigurationBuilder().Build());
            var connInfo = cm.Get <SqlServerConnectionInfo>();

            Assert.NotNull(connInfo);
            Assert.Equal("Data Source=localhost,1433;", connInfo.ConnectionString);
            Assert.Equal("SqlServer", connInfo.Name);
        }
        public void RedisConnectionInfoByName()
        {
            Environment.SetEnvironmentVariable("VCAP_SERVICES", RedisCacheTestHelpers.TwoServerVCAP);

            var cm       = new ConnectionStringManager(new ConfigurationBuilder().AddCloudFoundry().Build());
            var connInfo = cm.Get <RedisConnectionInfo>("myRedisService1");

            Assert.NotNull(connInfo);
            Assert.Equal("Redis-myRedisService1", connInfo.Name);
        }
        public void MongoDbConnectionInfoByName()
        {
            Environment.SetEnvironmentVariable("VCAP_SERVICES", MongoDbTestHelpers.DoubleBinding_Enterprise_VCAP);

            var cm       = new ConnectionStringManager(new ConfigurationBuilder().AddCloudFoundry().Build());
            var connInfo = cm.Get <MongoDbConnectionInfo>("steeltoe");

            Assert.NotNull(connInfo);
            Assert.Equal("MongoDb-steeltoe", connInfo.Name);
        }
        public void SqlServerConnectionInfo_ByName()
        {
            Environment.SetEnvironmentVariable("VCAP_SERVICES", SqlServerTestHelpers.TwoServerVCAP);

            var cm       = new ConnectionStringManager(new ConfigurationBuilder().AddCloudFoundry().Build());
            var connInfo = cm.Get <SqlServerConnectionInfo>("mySqlServerService");

            Assert.NotNull(connInfo);
            Assert.Equal("SqlServer-mySqlServerService", connInfo.Name);
        }
        public void MysqlConnectionInfoByName()
        {
            Environment.SetEnvironmentVariable("VCAP_SERVICES", MySqlTestHelpers.TwoServerVCAP);
            var config = new ConfigurationBuilder().AddCloudFoundry().Build();

            var cm       = new ConnectionStringManager(config);
            var connInfo = cm.Get <MySqlConnectionInfo>("spring-cloud-broker-db");

            Assert.NotNull(connInfo);
            Assert.Equal("MySql-spring-cloud-broker-db", connInfo.Name);
        }
Пример #13
0
        public void MongoDbConnectionInfo_FromCosmosVCAP()
        {
            Environment.SetEnvironmentVariable("VCAP_APPLICATION", TestHelpers.VCAP_APPLICATION);
            Environment.SetEnvironmentVariable("VCAP_SERVICES", MongoDbTestHelpers.SingleServer_CosmosDb_VCAP);
            var cm = new ConnectionStringManager(new ConfigurationBuilder().AddCloudFoundry().Build());

            var connInfo = cm.Get <MongoDbConnectionInfo>();

            Assert.NotNull(connInfo);
            Assert.Equal("mongodb://*****:*****@u83bde2c09fd.documents.azure.com:10255/?ssl=true&replicaSet=globaldb", connInfo.ConnectionString);
            Assert.StartsWith("MongoDb", connInfo.Name);
        }
Пример #14
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            // Add microsoft community health checks
            var cm = new ConnectionStringManager(Configuration);
            var connectionString = cm.Get <MySqlConnectionInfo>().ConnectionString;

            services.AddHealthChecks().AddMySql(connectionString);

            // Add in a MySql connection (this method also adds an IHealthContributor for it)
            services.AddMySqlConnection(Configuration); //will use microsoft health check instead of steeltoe health check

            services.AddHealthChecksUI();

            // Add framework services.
            services.AddControllersWithViews();
        }
Пример #15
0
        public void AddPosgreSqlConnection_AddsRelationalHealthContributor_WhenCommunityHealthCheckExistsAndForced()
        {
            IServiceCollection services = new ServiceCollection();
            var builder = new ConfigurationBuilder();

            builder.AddCloudFoundry();
            var config = builder.Build();

            var cm = new ConnectionStringManager(config);
            var ci = cm.Get <PostgresConnectionInfo>();

            services.AddHealthChecks().AddNpgSql(ci.ConnectionString, name: ci.Name);

            PostgresProviderServiceCollectionExtensions.AddPostgresConnection(services, config, addSteeltoeHealthChecks: true);
            var healthContributor = services.BuildServiceProvider().GetService <IHealthContributor>() as RelationalDbHealthContributor;

            Assert.NotNull(healthContributor);
        }
        public void AddMySqlConnection_DoesntAddRelationalHealthContributor_WhenCommunityHealthExists()
        {
            IServiceCollection services = new ServiceCollection();
            var builder = new ConfigurationBuilder();

            builder.AddCloudFoundry();
            var config = builder.Build();

            var cm = new ConnectionStringManager(config);
            var ci = cm.Get <MySqlConnectionInfo>();

            services.AddHealthChecks().AddMySql(ci.ConnectionString, name: ci.Name);

            MySqlProviderServiceCollectionExtensions.AddMySqlConnection(services, config);
            var healthContributor = services.BuildServiceProvider().GetService <IHealthContributor>() as RelationalDbHealthContributor;

            Assert.Null(healthContributor);
        }
Пример #17
0
        public void AddDistributedRedisCache_AddsRedisHealthContributor_WhenCommunityHealthCheckExistsAndForced()
        {
            IServiceCollection services = new ServiceCollection();
            var builder = new ConfigurationBuilder();

            builder.AddCloudFoundry();
            var config = builder.Build();

            var cm = new ConnectionStringManager(config);
            var ci = cm.Get <RedisConnectionInfo>();

            services.AddHealthChecks().AddRedis(ci.ConnectionString, name: ci.Name);

            RedisCacheServiceCollectionExtensions.AddDistributedRedisCache(services, config, addSteeltoeHealthChecks: true);
            var healthContributor = services.BuildServiceProvider().GetService <IHealthContributor>() as RedisHealthContributor;

            Assert.NotNull(healthContributor);
        }
Пример #18
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            // Add microsoft community health checks
            var cm = new ConnectionStringManager(Configuration);
            var connectionString = cm.Get <MySqlConnectionInfo>().ConnectionString;

            services.AddHealthChecks().AddMySql(connectionString);

            // Add in a MySql connection (this method also adds an IHealthContributor for it)
            services.AddMySqlConnection(Configuration); //will use microsoft health check instead of steelto health check

            // Add managment endpoint services
            services.AddCloudFoundryActuators(Configuration); // can check health from microsoft health check on the health actuator

            services.AddHealthChecksUI();

            // Add framework services.
            services.AddMvc();
        }
        public void AddRabbitMQConnection_AddsRabbitMQHealthContributor_WhenCommunityHealthCheckExistsAndForced()
        {
            // Arrange
            IServiceCollection   services = new ServiceCollection();
            ConfigurationBuilder builder  = new ConfigurationBuilder();

            builder.AddCloudFoundry();
            var config = builder.Build();

            var cm = new ConnectionStringManager(config);
            var ci = cm.Get <RabbitMQConnectionInfo>();

            services.AddHealthChecks().AddRabbitMQ(ci.ConnectionString, name: ci.Name);

            // Act
            RabbitMQProviderServiceCollectionExtensions.AddRabbitMQConnection(services, config, addSteeltoeHealthChecks: true);
            var healthContributor = services.BuildServiceProvider().GetService <IHealthContributor>() as RabbitMQHealthContributor;

            // Assert
            Assert.NotNull(healthContributor);
        }
        public void AddDistributedRedisCache_DoesntAddRedisHealthContributor_WhenCommunityHealthCheckExists()
        {
            // Arrange
            IServiceCollection services = new ServiceCollection();
            var builder = new ConfigurationBuilder();

            builder.AddCloudFoundry();
            var config = builder.Build();

            var cm = new ConnectionStringManager(config);
            var ci = cm.Get <RedisConnectionInfo>();

            services.AddHealthChecks().AddRedis(ci.ConnectionString, name: ci.Name);

            // Act
            RedisCacheServiceCollectionExtensions.AddDistributedRedisCache(services, config);
            var healthContributor = services.BuildServiceProvider().GetService <IHealthContributor>() as RedisHealthContributor;

            // Assert
            Assert.Null(healthContributor);
        }
Пример #21
0
        /// <summary>
        /// Creates a Cosmos DB database and a container with the specified partition key.
        /// </summary>
        /// <returns></returns>
        /// <remarks><see cref="CosmosDbConnectorOptions"/></remarks>
        private static async Task <CosmosDbService> InitializeCosmosClientInstanceAsync(IConfiguration configuration)
        {
            // read settings from "cosmosdb:client" and VCAP:services or services:
            var configMgr  = new ConnectionStringManager(configuration);
            var cosmosInfo = configMgr.Get <CosmosDbConnectionInfo>();

            // these are mapped into the properties dictionary
            var databaseName = cosmosInfo.Properties["DatabaseId"];
            var databaseLink = cosmosInfo.Properties["DatabaseLink"];

            // container is not known to be provided by a service binding:
            var containerName   = configuration.GetValue <string>("CosmosDb:Container");
            var cosmosClient    = new CosmosClient(cosmosInfo.ConnectionString);
            var cosmosDbService = new CosmosDbService(cosmosClient, databaseName, containerName);

            var database = await cosmosClient.CreateDatabaseIfNotExistsAsync(databaseName);

            await database.Database.CreateContainerIfNotExistsAsync(containerName, "/id");

            return(cosmosDbService);
        }
Пример #22
0
        public void AddSqlServerConnection_DoesntAddsRelationalHealthContributor_WhenCommunityHealthCheckExists()
        {
            // Arrange
            IServiceCollection services = new ServiceCollection();
            var builder = new ConfigurationBuilder();

            builder.AddCloudFoundry();
            var config = builder.Build();

            var cm = new ConnectionStringManager(config);
            var ci = cm.Get <SqlServerConnectionInfo>();

            services.AddHealthChecks().AddSqlServer(ci.ConnectionString, name: ci.Name);

            // Act
            services.AddSqlServerConnection(config);
            var healthContributor = services.BuildServiceProvider().GetService <IHealthContributor>() as RelationalDbHealthContributor;

            // Assert
            Assert.Null(healthContributor);
        }