main
1require "spec_helper"
2
3module Nasty
4 describe SimpleContext do
5 let(:sut) { SimpleContext.new(store) }
6 let(:store) { Hash.new }
7
8 context "when adding an item" do
9 let(:key) { Key.new("artist") }
10 let(:item) { "bobby digital" }
11
12 before { sut.add(key, item) }
13
14 it "should add the item to the context" do
15 store[key.to_sym].should == item
16 end
17 end
18
19 context "when removing an item" do
20 let(:key) { Key.new("artist") }
21 let(:item) { "bobby digital" }
22
23 before :each do
24 sut.add(key, item)
25 sut.remove(key)
26 end
27
28 it "should remove the item from the store" do
29 store[key.to_sym].should be_nil
30 end
31 end
32
33 context "when checking if a key is in the context" do
34 context "when it is" do
35 let(:key) { Key.new("blah") }
36 before { sut.add(key, 'blah') }
37 let(:result) { sut.contains?(key) }
38
39 it "should return true" do
40 result.should be_true
41 end
42 end
43
44 context "when it is not" do
45 let(:key) { Key.new("blah") }
46 let(:result) { sut.contains?(key) }
47
48 it "should return false" do
49 result.should be_false
50 end
51 end
52 end
53 context "when retrieving an item" do
54 let(:key) { Key.new("name") }
55 before { sut.add(key, 'mo') }
56 let(:result) { sut.item_for(key) }
57
58 it "should return the correct item" do
59 result.should == 'mo'
60 end
61 end
62 end
63end