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