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); }
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); }); }