public void AddMySqlHealthContributor_WithServiceName_NoVCAPs_ThrowsConnectorException()
        {
            IServiceCollection services = new ServiceCollection();
            var config = new ConfigurationBuilder().Build();

            var ex = Assert.Throws <ConnectorException>(() => MySqlServiceCollectionExtensions.AddMySqlHealthContributor(services, config, "foobar"));

            Assert.Contains("foobar", ex.Message);
        }
        public void AddMySqlHealthContributor_ThrowsIfServiceNameNull()
        {
            IServiceCollection services    = new ServiceCollection();
            IConfigurationRoot config      = null;
            string             serviceName = null;

            var ex = Assert.Throws <ArgumentNullException>(() => MySqlServiceCollectionExtensions.AddMySqlHealthContributor(services, config, serviceName));

            Assert.Contains(nameof(serviceName), ex.Message);
        }
        public void AddMySqlHealthContributor_NoVCAPs_AddsIHealthContributor()
        {
            IServiceCollection services = new ServiceCollection();
            var config = new ConfigurationBuilder().Build();

            MySqlServiceCollectionExtensions.AddMySqlHealthContributor(services, config);

            var service = services.BuildServiceProvider().GetService <IHealthContributor>();

            Assert.NotNull(service);
        }
        public void AddMySqlHealthContributor_ThrowsIfServiceCollectionNull()
        {
            IServiceCollection services = null;
            IConfigurationRoot config   = null;

            var ex = Assert.Throws <ArgumentNullException>(() => MySqlServiceCollectionExtensions.AddMySqlHealthContributor(services, config));

            Assert.Contains(nameof(services), ex.Message);

            var ex2 = Assert.Throws <ArgumentNullException>(() => MySqlServiceCollectionExtensions.AddMySqlHealthContributor(services, config, "foobar"));

            Assert.Contains(nameof(services), ex2.Message);
        }
        public void AddMySqlHealthContributor_AddsRelationalHealthContributor()
        {
            IServiceCollection services = new ServiceCollection();
            var builder = new ConfigurationBuilder();

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

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

            Assert.NotNull(healthContributor);
        }
        public void AddMySqlHealthContributor_MultipleMySqlServices_ThrowsConnectorException()
        {
            IServiceCollection services = new ServiceCollection();

            Environment.SetEnvironmentVariable("VCAP_APPLICATION", TestHelpers.VCAP_APPLICATION);
            Environment.SetEnvironmentVariable("VCAP_SERVICES", MySqlTestHelpers.TwoServerVCAP);

            var builder = new ConfigurationBuilder();

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

            var ex = Assert.Throws <ConnectorException>(() => MySqlServiceCollectionExtensions.AddMySqlHealthContributor(services, config));

            Assert.Contains("Multiple", ex.Message);
        }