mirror of
https://gitea.invidious.io/iv-org/shard-crystal-db.git
synced 2024-08-15 00:53:32 +00:00
fix #1. avoid marking as closed if do_close raise exception
This commit is contained in:
parent
933014c1aa
commit
6838784f7b
2 changed files with 33 additions and 1 deletions
31
spec/disposable_spec.cr
Normal file
31
spec/disposable_spec.cr
Normal file
|
@ -0,0 +1,31 @@
|
|||
require "./spec_helper"
|
||||
|
||||
class ADisposable
|
||||
include DB::Disposable
|
||||
@raise = false
|
||||
|
||||
property raise
|
||||
|
||||
protected def do_close
|
||||
raise "Unable to close" if @raise
|
||||
end
|
||||
end
|
||||
|
||||
describe DB::Disposable do
|
||||
it "should mark as closed if able to close" do
|
||||
obj = ADisposable.new
|
||||
obj.closed?.should be_false
|
||||
obj.close
|
||||
obj.closed?.should be_true
|
||||
end
|
||||
|
||||
it "should not mark as closed if unable to close" do
|
||||
obj = ADisposable.new
|
||||
obj.raise = true
|
||||
obj.closed?.should be_false
|
||||
expect_raises Exception do
|
||||
obj.close
|
||||
end
|
||||
obj.closed?.should be_false
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue