]> git.openstreetmap.org Git - rails.git/blob - vendor/gems/rspec-1.1.2/lib/spec/mocks/order_group.rb
added RSpec and RSpec on Rails
[rails.git] / vendor / gems / rspec-1.1.2 / lib / spec / mocks / order_group.rb
1 module Spec
2   module Mocks
3     class OrderGroup
4       def initialize error_generator
5         @error_generator = error_generator
6         @ordering = Array.new
7       end
8       
9       def register(expectation)
10         @ordering << expectation
11       end
12       
13       def ready_for?(expectation)
14         return @ordering.first == expectation
15       end
16       
17       def consume
18         @ordering.shift
19       end
20       
21       def handle_order_constraint expectation
22         return unless @ordering.include? expectation
23         return consume if ready_for?(expectation)
24         @error_generator.raise_out_of_order_error expectation.sym
25       end
26       
27     end
28   end
29 end