]> git.openstreetmap.org Git - rails.git/blob - vendor/gems/rspec-1.1.2/spec/spec/mocks/mock_ordering_spec.rb
Show whether a trace is public or private in the trace list, so that a user can easil...
[rails.git] / vendor / gems / rspec-1.1.2 / spec / spec / mocks / mock_ordering_spec.rb
1 require File.dirname(__FILE__) + '/../../spec_helper'
2
3 module Spec
4   module Mocks
5
6     describe "Mock ordering" do
7
8       before do
9         @mock = mock("test mock")
10       end
11       
12       after do
13         @mock.rspec_reset
14       end
15
16       it "should pass two calls in order" do
17         @mock.should_receive(:one).ordered
18         @mock.should_receive(:two).ordered
19         @mock.one
20         @mock.two
21         @mock.rspec_verify
22       end
23
24       it "should pass three calls in order" do
25         @mock.should_receive(:one).ordered
26         @mock.should_receive(:two).ordered
27         @mock.should_receive(:three).ordered
28         @mock.one
29         @mock.two
30         @mock.three
31         @mock.rspec_verify
32       end
33
34       it "should fail if second call comes first" do
35         @mock.should_receive(:one).ordered
36         @mock.should_receive(:two).ordered
37         lambda do
38           @mock.two
39         end.should raise_error(MockExpectationError, "Mock 'test mock' received :two out of order")
40       end
41
42       it "should fail if third call comes first" do
43         @mock.should_receive(:one).ordered
44         @mock.should_receive(:two).ordered
45         @mock.should_receive(:three).ordered
46         @mock.one
47         lambda do
48           @mock.three
49         end.should raise_error(MockExpectationError, "Mock 'test mock' received :three out of order")
50       end
51       
52       it "should fail if third call comes second" do
53         @mock.should_receive(:one).ordered
54         @mock.should_receive(:two).ordered
55         @mock.should_receive(:three).ordered
56         @mock.one
57         lambda do
58           @mock.three
59         end.should raise_error(MockExpectationError, "Mock 'test mock' received :three out of order")
60       end
61
62       it "should ignore order of non ordered calls" do
63         @mock.should_receive(:ignored_0)
64         @mock.should_receive(:ordered_1).ordered
65         @mock.should_receive(:ignored_1)
66         @mock.should_receive(:ordered_2).ordered
67         @mock.should_receive(:ignored_2)
68         @mock.should_receive(:ignored_3)
69         @mock.should_receive(:ordered_3).ordered
70         @mock.should_receive(:ignored_4)
71         @mock.ignored_3
72         @mock.ordered_1
73         @mock.ignored_0
74         @mock.ordered_2
75         @mock.ignored_4
76         @mock.ignored_2
77         @mock.ordered_3
78         @mock.ignored_1
79         @mock.rspec_verify
80       end
81             
82     end
83   end
84 end