13 it "should only allow trusted types of data to be saved" do
14 expect { @result["rspec"] = Time.now }.to raise_error
16 @result["rspec"] = 1.1
17 @result["rspec"] = "rspec"
18 @result["rspec"] = true
19 @result["rspec"] = false
22 it "should set the correct value" do
23 @result["rspec"] = "rspec value"
24 @result.instance_variable_get("@data").should == {:rspec => "rspec value"}
27 it "should only allow valid data types" do
28 expect { @result["rspec"] = Time.now }.to raise_error(/Can only store .+ data but got Time for key rspec/)
32 describe "#include" do
33 it "should return the correct list of keys" do
36 @result.keys.sort.should == [:x, :y]
40 describe "#include?" do
41 it "should correctly report that a key is present or absent" do
42 @result.include?("rspec").should == false
43 @result.include?(:rspec).should == false
44 @result["rspec"] = "rspec"
45 @result.include?("rspec").should == true
46 @result.include?(:rspec).should == true
51 it "should retrieve the correct information" do
52 @result["rspec"].should == nil
53 @result[:rspec].should == nil
54 @result["rspec"] = "rspec value"
55 @result["rspec"].should == "rspec value"
56 @result[:rspec].should == "rspec value"
60 describe "#method_missing" do
61 it "should raise the correct exception for unknown keys" do
62 expect { @result.nosuchdata }.to raise_error(NoMethodError)
65 it "should retrieve the correct data" do
66 @result["rspec"] = "rspec value"
67 @result.rspec.should == "rspec value"