query/test/connection_pool.cpp

43 lines
911 B
C++

#include <catch2/catch_test_macros.hpp>
#include <matador/sql/connection.hpp>
#include <matador/sql/connection_pool.hpp>
using namespace matador::sql;
TEST_CASE("Create connection pool", "[connection pool]") {
using pool_t = connection_pool<connection>;
pool_t pool("db", 4);
REQUIRE(pool.size() == 4);
REQUIRE(pool.idle() == 4);
REQUIRE(pool.inuse() == 0);
auto ptr = pool.acquire();
REQUIRE(ptr.valid());
REQUIRE(ptr->is_open());
REQUIRE(!ptr->dns().empty());
REQUIRE(pool.idle() == 3);
REQUIRE(pool.inuse() == 1);
pool.release(ptr);
REQUIRE(!ptr.valid());
REQUIRE(pool.idle() == 4);
REQUIRE(pool.inuse() == 0);
{
auto ptr2 = pool.acquire();
REQUIRE(ptr2.valid());
REQUIRE(ptr2->is_open());
REQUIRE(!ptr2->dns().empty());
REQUIRE(pool.idle() == 3);
REQUIRE(pool.inuse() == 1);
}
REQUIRE(pool.idle() == 4);
REQUIRE(pool.inuse() == 0);
}