Upgraded Rails and RSpec
[monkeycharger.git] / vendor / plugins / rspec / spec / spec / matchers / raise_error_spec.rb
blobed4ec6c487ee9576d2987d6c6bdbb90d877f72c2
1 require File.dirname(__FILE__) + '/../../spec_helper.rb'
3 describe "should raise_error" do
4   it "should pass if anything is raised" do
5     lambda {raise}.should raise_error
6   end
7   
8   it "should fail if nothing is raised" do
9     lambda {
10       lambda {}.should raise_error
11     }.should fail_with("expected Exception but nothing was raised")
12   end
13 end
15 describe "should_not raise_error" do
16   it "should pass if nothing is raised" do
17     lambda {}.should_not raise_error
18   end
19   
20   it "should fail if anything is raised" do
21     lambda {
22       lambda {raise}.should_not raise_error
23     }.should fail_with("expected no Exception, got RuntimeError")
24   end
25 end
27 describe "should raise_error(NamedError)" do
28   it "should pass if named error is raised" do
29     lambda { non_existent_method }.should raise_error(NameError)
30   end
31   
32   it "should fail if nothing is raised" do
33     lambda {
34       lambda { }.should raise_error(NameError)
35     }.should fail_with("expected NameError but nothing was raised")
36   end
37   
38   it "should fail if another error is raised" do
39     lambda {
40       lambda { raise }.should raise_error(NameError)
41     }.should fail_with("expected NameError, got RuntimeError")
42   end
43 end
45 describe "should_not raise_error(NamedError)" do
46   it "should pass if nothing is raised" do
47     lambda { }.should_not raise_error(NameError)
48   end
49   
50   it "should pass if another error is raised" do
51     lambda { raise }.should_not raise_error(NameError)
52   end
53   
54   it "should fail if named error is raised" do
55     lambda {
56       lambda { non_existent_method }.should_not raise_error(NameError)
57     }.should fail_with(/expected no NameError, got #<NameError: undefined/)
58   end  
59 end
61 describe "should raise_error(NamedError, error_message) with String" do
62   it "should pass if named error is raised with same message" do
63     lambda { raise "example message" }.should raise_error(RuntimeError, "example message")
64   end
65   
66   it "should fail if nothing is raised" do
67     lambda {
68       lambda {}.should raise_error(RuntimeError, "example message")
69     }.should fail_with("expected RuntimeError with \"example message\" but nothing was raised")
70   end
71   
72   it "should fail if incorrect error is raised" do
73     lambda {
74       lambda { raise }.should raise_error(NameError, "example message")
75     }.should fail_with("expected NameError with \"example message\", got RuntimeError")
76   end
77   
78   it "should fail if correct error is raised with incorrect message" do
79     lambda {
80       lambda { raise RuntimeError.new("not the example message") }.should raise_error(RuntimeError, "example message")
81     }.should fail_with(/expected RuntimeError with \"example message\", got #<RuntimeError: not the example message/)
82   end
83 end
85 describe "should_not raise_error(NamedError, error_message) with String" do
86   it "should pass if nothing is raised" do
87     lambda {}.should_not raise_error(RuntimeError, "example message")
88   end
89   
90   it "should pass if a different error is raised" do
91     lambda { raise }.should_not raise_error(NameError, "example message")
92   end
93   
94   it "should pass if same error is raised with different message" do
95     lambda { raise RuntimeError.new("not the example message") }.should_not raise_error(RuntimeError, "example message")
96   end
97   
98   it "should fail if named error is raised with same message" do
99     lambda {
100       lambda { raise "example message" }.should_not raise_error(RuntimeError, "example message")
101     }.should fail_with("expected no RuntimeError with \"example message\", got #<RuntimeError: example message>")
102   end
105 describe "should raise_error(NamedError, error_message) with Regexp" do
106   it "should pass if named error is raised with matching message" do
107     lambda { raise "example message" }.should raise_error(RuntimeError, /ample mess/)
108   end
109   
110   it "should fail if nothing is raised" do
111     lambda {
112       lambda {}.should raise_error(RuntimeError, /ample mess/)
113     }.should fail_with("expected RuntimeError with message matching /ample mess/ but nothing was raised")
114   end
115   
116   it "should fail if incorrect error is raised" do
117     lambda {
118       lambda { raise }.should raise_error(NameError, /ample mess/)
119     }.should fail_with("expected NameError with message matching /ample mess/, got RuntimeError")
120   end
121   
122   it "should fail if correct error is raised with incorrect message" do
123     lambda {
124       lambda { raise RuntimeError.new("not the example message") }.should raise_error(RuntimeError, /less than ample mess/)
125     }.should fail_with("expected RuntimeError with message matching /less than ample mess/, got #<RuntimeError: not the example message>")
126   end
129 describe "should_not raise_error(NamedError, error_message) with Regexp" do
130   it "should pass if nothing is raised" do
131     lambda {}.should_not raise_error(RuntimeError, /ample mess/)
132   end
133   
134   it "should pass if a different error is raised" do
135     lambda { raise }.should_not raise_error(NameError, /ample mess/)
136   end
137   
138   it "should pass if same error is raised with non-matching message" do
139     lambda { raise RuntimeError.new("non matching message") }.should_not raise_error(RuntimeError, /ample mess/)
140   end
141   
142   it "should fail if named error is raised with matching message" do
143     lambda {
144       lambda { raise "example message" }.should_not raise_error(RuntimeError, /ample mess/)
145     }.should fail_with("expected no RuntimeError with message matching /ample mess/, got #<RuntimeError: example message>")
146   end