changelog shortlog tags changeset manifest revisions annotate raw

vendor/plugins/rspec/spec/spec/mocks/failing_mock_argument_constraints_spec.rb

changeset 15: 64acf98d15f4
author: moriq@moriq.com
date: Mon Mar 10 10:12:58 2008 +0900 (16 years ago)
permissions: -rw-r--r--
description: add plugins rspec
1require File.dirname(__FILE__) + '/../../spec_helper.rb'
2
3module Spec
4 module Mocks
5 describe "failing MockArgumentConstraints" do
6 before(:each) do
7 @mock = mock("test mock")
8 @reporter = Mock.new("reporter", :null_object => true)
9 end
10
11 after(:each) do
12 @mock.rspec_reset
13 end
14
15 it "should reject non boolean" do
16 @mock.should_receive(:random_call).with(boolean())
17 lambda do
18 @mock.random_call("false")
19 end.should raise_error(MockExpectationError)
20 end
21
22 it "should reject non numeric" do
23 @mock.should_receive(:random_call).with(an_instance_of(Numeric))
24 lambda do
25 @mock.random_call("1")
26 end.should raise_error(MockExpectationError)
27 end
28
29 it "should reject non string" do
30 @mock.should_receive(:random_call).with(an_instance_of(String))
31 lambda do
32 @mock.random_call(123)
33 end.should raise_error(MockExpectationError)
34 end
35
36 it "should reject goose when expecting a duck" do
37 @mock.should_receive(:random_call).with(duck_type(:abs, :div))
38 lambda { @mock.random_call("I don't respond to :abs or :div") }.should raise_error(MockExpectationError)
39 end
40
41 it "should fail if regexp does not match submitted string" do
42 @mock.should_receive(:random_call).with(/bcd/)
43 lambda { @mock.random_call("abc") }.should raise_error(MockExpectationError)
44 end
45
46 it "should fail if regexp does not match submitted regexp" do
47 @mock.should_receive(:random_call).with(/bcd/)
48 lambda { @mock.random_call(/bcde/) }.should raise_error(MockExpectationError)
49 end
50
51 it "should fail for a hash w/ wrong values" do
52 @mock.should_receive(:random_call).with(:a => "b", :c => "d")
53 lambda do
54 @mock.random_call(:a => "b", :c => "e")
55 end.should raise_error(MockExpectationError, /Mock 'test mock' expected :random_call with \(\{(:a=>\"b\", :c=>\"d\"|:c=>\"d\", :a=>\"b\")\}\) but received it with \(\{(:a=>\"b\", :c=>\"e\"|:c=>\"e\", :a=>\"b\")\}\)/)
56 end
57
58 it "should fail for a hash w/ wrong keys" do
59 @mock.should_receive(:random_call).with(:a => "b", :c => "d")
60 lambda do
61 @mock.random_call("a" => "b", "c" => "d")
62 end.should raise_error(MockExpectationError, /Mock 'test mock' expected :random_call with \(\{(:a=>\"b\", :c=>\"d\"|:c=>\"d\", :a=>\"b\")\}\) but received it with \(\{(\"a\"=>\"b\", \"c\"=>\"d\"|\"c\"=>\"d\", \"a\"=>\"b\")\}\)/)
63 end
64
65 it "should match against a Matcher" do
66 lambda do
67 @mock.should_receive(:msg).with(equal(3))
68 @mock.msg(37)
69 end.should raise_error(MockExpectationError, "Mock 'test mock' expected :msg with (equal 3) but received it with (37)")
70 end
71
72 it "should fail no_args with one arg" do
73 lambda do
74 @mock.should_receive(:msg).with(no_args)
75 @mock.msg(37)
76 end.should raise_error(MockExpectationError, "Mock 'test mock' expected :msg with (no args) but received it with (37)")
77 end
78 end
79
80 describe "failing deprecated MockArgumentConstraints" do
81 before(:each) do
82 @mock = mock("test mock")
83 @reporter = Mock.new("reporter", :null_object => true)
84 Kernel.stub!(:warn)
85 end
86
87 after(:each) do
88 @mock.rspec_reset
89 end
90
91 it "should reject non boolean" do
92 @mock.should_receive(:random_call).with(:boolean)
93 lambda do
94 @mock.random_call("false")
95 end.should raise_error(MockExpectationError)
96 end
97
98 it "should reject non numeric" do
99 @mock.should_receive(:random_call).with(:numeric)
100 lambda do
101 @mock.random_call("1")
102 end.should raise_error(MockExpectationError)
103 end
104
105 it "should reject non string" do
106 @mock.should_receive(:random_call).with(:string)
107 lambda do
108 @mock.random_call(123)
109 end.should raise_error(MockExpectationError)
110 end
111
112
113 end
114 end
115end