1 require File.dirname(__FILE__) + '/../../spec_helper'
6 describe "Mock ordering" do
9 @mock = mock("test mock")
16 it "should pass two calls in order" do
17 @mock.should_receive(:one).ordered
18 @mock.should_receive(:two).ordered
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
34 it "should fail if second call comes first" do
35 @mock.should_receive(:one).ordered
36 @mock.should_receive(:two).ordered
39 end.should raise_error(MockExpectationError, "Mock 'test mock' received :two out of order")
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
49 end.should raise_error(MockExpectationError, "Mock 'test mock' received :three out of order")
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
59 end.should raise_error(MockExpectationError, "Mock 'test mock' received :three out of order")
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)