diff options
Diffstat (limited to 'test/spec_session_abstract_session_hash.rb')
-rw-r--r-- | test/spec_session_abstract_session_hash.rb | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/test/spec_session_abstract_session_hash.rb b/test/spec_session_abstract_session_hash.rb index 6d73a80a..76b34a01 100644 --- a/test/spec_session_abstract_session_hash.rb +++ b/test/spec_session_abstract_session_hash.rb @@ -25,4 +25,21 @@ describe Rack::Session::Abstract::SessionHash do assert_equal [:bar, :qux], hash.values end + describe "#fetch" do + it "returns value for a matching key" do + assert_equal :bar, hash.fetch(:foo) + end + + it "works with a default value" do + assert_equal :default, hash.fetch(:unknown, :default) + end + + it "works with a block" do + assert_equal :default, hash.fetch(:unkown) { :default } + end + + it "it raises when fetching unknown keys without defaults" do + lambda { hash.fetch(:unknown) }.must_raise KeyError + end + end end |