class RSpec::Mocks::OrderGroup
@private
Public Class Methods
# File rspec-mocks/lib/rspec/mocks/order_group.rb, line 7 def initialize @expectations = [] @invocation_order = [] @invocation_order_mutex = Support::Mutex.new @index = 0 end
Public Instance Methods
# File rspec-mocks/lib/rspec/mocks/order_group.rb, line 53 def clear @index = 0 @invocation_order_mutex.synchronize do @invocation_order.clear end @expectations.clear end
@private
# File rspec-mocks/lib/rspec/mocks/order_group.rb, line 31 def consume remaining_expectations.each_with_index do |expectation, index| next unless expectation.ordered? @index += index + 1 return expectation end nil end
# File rspec-mocks/lib/rspec/mocks/order_group.rb, line 61 def empty? @expectations.empty? end
@private
# File rspec-mocks/lib/rspec/mocks/order_group.rb, line 42 def handle_order_constraint(expectation) return unless expectation.ordered? && remaining_expectations.include?(expectation) return consume if ready_for?(expectation) expectation.raise_out_of_order_error end
# File rspec-mocks/lib/rspec/mocks/order_group.rb, line 19 def invoked(message) @invocation_order_mutex.synchronize do @invocation_order << message end end
@private
# File rspec-mocks/lib/rspec/mocks/order_group.rb, line 26 def ready_for?(expectation) remaining_expectations.find(&:ordered?) == expectation end
@private
# File rspec-mocks/lib/rspec/mocks/order_group.rb, line 15 def register(expectation) @expectations << expectation end
# File rspec-mocks/lib/rspec/mocks/order_group.rb, line 48 def verify_invocation_order(expectation) expectation.raise_out_of_order_error unless expectations_invoked_in_order? true end