mirror of
https://gitea.invidious.io/iv-org/shard-crystal-db.git
synced 2024-08-15 00:53:32 +00:00
changes needed due to 3c91978d36
add posibility to inspect availability of a resource in a pool (testing only) allow access to internal connection pool of db (testing only)
This commit is contained in:
parent
3c91978d36
commit
8d891a5a4e
4 changed files with 28 additions and 1 deletions
|
@ -59,6 +59,25 @@ describe DB::Pool do
|
|||
pool.checkout.should be_a Closable
|
||||
end
|
||||
|
||||
it "should be available if not checkedout" do
|
||||
resource = uninitialized Closable
|
||||
pool = DB::Pool.new(initial_pool_size: 1) { resource = Closable.new }
|
||||
pool.is_available?(resource).should be_true
|
||||
end
|
||||
|
||||
it "should not be available if checkedout" do
|
||||
pool = DB::Pool.new { Closable.new }
|
||||
resource = pool.checkout
|
||||
pool.is_available?(resource).should be_false
|
||||
end
|
||||
|
||||
it "should be available if returned" do
|
||||
pool = DB::Pool.new { Closable.new }
|
||||
resource = pool.checkout
|
||||
pool.release resource
|
||||
pool.is_available?(resource).should be_true
|
||||
end
|
||||
|
||||
it "should wait for available resource" do
|
||||
pool = DB::Pool.new(max_pool_size: 1, initial_pool_size: 1) { Closable.new }
|
||||
|
||||
|
|
|
@ -124,7 +124,8 @@ describe DB::Statement do
|
|||
expect_raises do
|
||||
db.exec "raise"
|
||||
end
|
||||
db.@in_pool.should be_true
|
||||
DummyDriver::DummyConnection.connections.size.should eq(1)
|
||||
db.pool.is_available?(DummyDriver::DummyConnection.connections.first)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -16,6 +16,8 @@ module DB
|
|||
class Database
|
||||
# :nodoc:
|
||||
getter driver
|
||||
# :nodoc:
|
||||
getter pool
|
||||
|
||||
# Returns the uri with the connection settings to the database
|
||||
getter uri
|
||||
|
|
|
@ -53,6 +53,11 @@ module DB
|
|||
end
|
||||
end
|
||||
|
||||
# :nodon:
|
||||
def is_available?(resource : T)
|
||||
@available.includes?(resource)
|
||||
end
|
||||
|
||||
private def build_resource : T
|
||||
resource = @factory.call
|
||||
@total << resource
|
||||
|
|
Loading…
Reference in a new issue