public void ConnectionPool()
        {
            var connectionPool = new PostgreSqlConnectionPool(CONNECTION_STRING, 2, 5000);
            var providerA      = new PostgreSqlProvider(connectionPool, logwriter, SCHEMA);
            var providerB      = new PostgreSqlProvider(connectionPool, logwriter, SCHEMA);

            Assert.AreEqual(1, providerA.ConnectionId);
            Assert.AreEqual(2, providerB.ConnectionId);
        }
        public void ConnectionPool_NoTimeout()
        {
            var connectionPool = new PostgreSqlConnectionPool(CONNECTION_STRING, 2, 1000);
            var providerA      = new PostgreSqlProvider(connectionPool, logwriter, SCHEMA);
            var providerB      = new PostgreSqlProvider(connectionPool, logwriter, SCHEMA);

            Task.Delay(1000).ContinueWith(k => providerA.Dispose());

            var providerC = new PostgreSqlProvider(connectionPool, logwriter, SCHEMA);
        }
        public void ConnectionPool_ConnectionMaxReached()
        {
            var connectionPool = new PostgreSqlConnectionPool(CONNECTION_STRING, 2, 1000);
            var providerA      = new PostgreSqlProvider(connectionPool, logwriter, SCHEMA);
            var providerB      = new PostgreSqlProvider(connectionPool, logwriter, SCHEMA);

            Assert.Throws <TimeoutException>(() =>
            {
                var providerC = new PostgreSqlProvider(connectionPool, logwriter, SCHEMA);
            });
        }
        public void ConnectionPool_Disposing()
        {
            var connectionPool = new PostgreSqlConnectionPool(CONNECTION_STRING, 2, 5000);
            var providerA      = new PostgreSqlProvider(connectionPool, logwriter, SCHEMA);
            var providerB      = new PostgreSqlProvider(connectionPool, logwriter, SCHEMA);

            providerA.Dispose();
            var providerC = new PostgreSqlProvider(connectionPool, logwriter, SCHEMA);

            providerB.Dispose();
            var providerD = new PostgreSqlProvider(connectionPool, logwriter, SCHEMA);
        }
Example #5
0
        public ItemProvider(ItemProviderSettings settings, TypeManager typeManager, ILogWriter log)
        {
            var entityProviderLog = log.NewRegion(nameof(EntityProvider));
            var pool        = new PostgreSqlConnectionPool(settings.PostgreSqlConnectionString, settings.MaxConnections, settings.Timeout);
            var sqlProvider = new PostgreSqlProvider(pool, entityProviderLog.NewRegion("PostgreSQL"), settings.Schema);

            sqlProvider.EnsureSchemaExists();

            this.provider = new EntityProvider(sqlProvider, entityProviderLog);
            this.log      = log;
            this.context  = new ItemContext(typeManager);
        }
        public void ConnectionPool_Timeout()
        {
            var connectionPool = new PostgreSqlConnectionPool(CONNECTION_STRING, 2, 1000);
            var providerA      = new PostgreSqlProvider(connectionPool, logwriter, SCHEMA);
            var providerB      = new PostgreSqlProvider(connectionPool, logwriter, SCHEMA);

            Task.Delay(1100).ContinueWith(k => providerA.Dispose());

            Assert.Throws <TimeoutException>(() =>
            {
                var providerC = new PostgreSqlProvider(connectionPool, logwriter, SCHEMA);
            });
        }