1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
module Mocha
class ExpectationList
def initialize
@expectations = []
end
def add(expectation)
@expectations.unshift(expectation)
expectation
end
def remove_all_matching_method(method_name)
@expectations.reject! { |expectation| expectation.matches_method?(method_name) }
end
def matches_method?(method_name)
@expectations.any? { |expectation| expectation.matches_method?(method_name) }
end
def match(method_name, *arguments)
matching_expectations(method_name, *arguments).first
end
def match_allowing_invocation(method_name, *arguments)
matching_expectations(method_name, *arguments).detect { |e| e.invocations_allowed? }
end
def verified?(assertion_counter = nil)
@expectations.all? { |expectation| expectation.verified?(assertion_counter) }
end
def to_a
@expectations
end
def to_set
@expectations.to_set
end
def length
@expectations.length
end
def any?
@expectations.any?
end
private
def matching_expectations(method_name, *arguments)
@expectations.select { |e| e.match?(method_name, *arguments) }
end
end
end
|