public void RegisterPostgreSqlConnection_Requires_Config()
        {
            // arrange
            ContainerBuilder cb = new ContainerBuilder();

            // act & assert
            Assert.Throws <ArgumentNullException>(() => PostgreSqlContainerBuilderExtensions.RegisterPostgreSqlConnection(cb, null));
        }
        public void RegisterPostgreSqlConnection_Requires_Builder()
        {
            // arrange
            IConfiguration config = new ConfigurationBuilder().Build();

            // act & assert
            Assert.Throws <ArgumentNullException>(() => PostgreSqlContainerBuilderExtensions.RegisterPostgreSqlConnection(null, config));
        }
        public void RegisterPostgreSqlConnection_AddsHealthContributorToContainer()
        {
            // arrange
            ContainerBuilder container = new ContainerBuilder();
            IConfiguration   config    = new ConfigurationBuilder().Build();

            // act
            var regBuilder        = PostgreSqlContainerBuilderExtensions.RegisterPostgreSqlConnection(container, config);
            var services          = container.Build();
            var healthContributor = services.Resolve <IHealthContributor>();

            // assert
            Assert.NotNull(healthContributor);
            Assert.IsType <RelationalHealthContributor>(healthContributor);
        }
        public void RegisterPostgreSqlConnection_AddsToContainer()
        {
            // arrange
            ContainerBuilder container = new ContainerBuilder();
            IConfiguration   config    = new ConfigurationBuilder().Build();

            // act
            var regBuilder = PostgreSqlContainerBuilderExtensions.RegisterPostgreSqlConnection(container, config);
            var services   = container.Build();
            var dbConn     = services.Resolve <IDbConnection>();

            // assert
            Assert.NotNull(dbConn);
            Assert.IsType <NpgsqlConnection>(dbConn);
        }