/
dev-npgsql
/
npgsql
Обзор
Документация
Войти
/
dev-npgsql
/
npgsql
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
v7.0.10
test/Npgsql.Tests/PoolManagerTests.cs
76 строк
2 KB
Shay Rojansky
Basic implementation of NpgsqlDataSource (#4492)
19 июн 2022, 23:47
Не верифицирован
19 июн 2022, 23:47
ff6d793
Код
Авторство
О чём код?
using NUnit.Framework; namespace Npgsql.Tests; [NonParallelizable] class PoolManagerTests : TestBase { [Test] public void With_canonical_connection_string() { var connString = new NpgsqlConnectionStringBuilder(ConnectionString).ToString(); using (var conn = new NpgsqlConnection(connString)) conn.Open(); var connString2 = new NpgsqlConnectionStringBuilder(ConnectionString) { ApplicationName = "Another connstring" }.ToString(); using (var conn = new NpgsqlConnection(connString2)) conn.Open(); } #if DEBUG [Test] public void Many_pools() { PoolManager.Reset(); for (var i = 0; i < 15; i++) { var connString = new NpgsqlConnectionStringBuilder(ConnectionString) { ApplicationName = "App" + i }.ToString(); using var conn = new NpgsqlConnection(connString); conn.Open(); } PoolManager.Reset(); } #endif [Test] public void ClearAllPools() { using (OpenConnection()) {} // Now have one connection in the pool Assert.That(PoolManager.Pools.TryGetValue(ConnectionString, out var pool), Is.True); Assert.That(pool!.Statistics.Idle, Is.EqualTo(1)); NpgsqlConnection.ClearAllPools(); Assert.That(pool.Statistics.Idle, Is.Zero); Assert.That(pool.Statistics.Total, Is.Zero); } [Test] public void ClearAllPools_with_busy() { NpgsqlDataSource? pool; using (OpenConnection()) { using (OpenConnection()) { } // We have one idle, one busy NpgsqlConnection.ClearAllPools(); Assert.That(PoolManager.Pools.TryGetValue(ConnectionString, out pool), Is.True); Assert.That(pool!.Statistics.Idle, Is.Zero); Assert.That(pool.Statistics.Total, Is.EqualTo(1)); } Assert.That(pool.Statistics.Idle, Is.Zero); Assert.That(pool.Statistics.Total, Is.Zero); } [SetUp] public void Setup() => PoolManager.Reset(); [TearDown] public void Teardown() => PoolManager.Reset(); }