changelog shortlog tags changeset manifest revisions annotate raw

vendor/plugins/rspec_on_rails/spec/rails/example/ivar_proxy_spec.rb

changeset 16: 01fd3f10ae84
author: moriq@moriq.com
date: Mon Mar 10 10:13:18 2008 +0900 (16 years ago)
permissions: -rw-r--r--
description: add plugins rspec_on_rails
1require File.dirname(__FILE__) + '/../../spec_helper'
2
3describe "IvarProxy setup", :shared => true do
4 before do
5 @object = Object.new
6 @proxy = Spec::Rails::Example::IvarProxy.new(@object)
7 end
8end
9
10describe "IvarProxy" do
11 it_should_behave_like "IvarProxy setup"
12
13 it "has [] accessor" do
14 @proxy['foo'] = 'bar'
15 @object.instance_variable_get(:@foo).should == 'bar'
16 @proxy['foo'].should == 'bar'
17 end
18
19 it "iterates through each element like a Hash" do
20 values = {
21 'foo' => 1,
22 'bar' => 2,
23 'baz' => 3
24 }
25 @proxy['foo'] = values['foo']
26 @proxy['bar'] = values['bar']
27 @proxy['baz'] = values['baz']
28
29 @proxy.each do |key, value|
30 key.should == key
31 value.should == values[key]
32 end
33 end
34
35 it "detects the presence of a key" do
36 @proxy['foo'] = 'bar'
37 @proxy.has_key?('foo').should == true
38 @proxy.has_key?('bar').should == false
39 end
40end
41
42describe "IvarProxy", "#delete" do
43 it_should_behave_like "IvarProxy setup"
44
45 it "deletes the element with key" do
46 @proxy['foo'] = 'bar'
47 @proxy.delete('foo').should == 'bar'
48 @proxy['foo'].should be_nil
49 end
50
51 it "deletes nil instance variables" do
52 @proxy['foo'] = nil
53 @object.instance_variables.should include("@foo")
54 @proxy.delete('foo').should == nil
55 @proxy['foo'].should be_nil
56 @object.instance_variables.should_not include("@foo")
57 end
58
59 it "returns nil when key does not exist" do
60 @proxy['foo'].should be_nil
61 @proxy.delete('foo').should == nil
62 @proxy['foo'].should be_nil
63 end
64end