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
|
module Mocha # :nodoc:
class Sequence
class InSequenceOrderingConstraint
def initialize(sequence, index)
@sequence, @index = sequence, index
end
def allows_invocation_now?
@sequence.satisfied_to_index?(@index)
end
def mocha_inspect
"in sequence #{@sequence.mocha_inspect}"
end
end
def initialize(name)
@name = name
@expectations = []
end
def constrain_as_next_in_sequence(expectation)
index = @expectations.length
@expectations << expectation
expectation.add_ordering_constraint(InSequenceOrderingConstraint.new(self, index))
end
def satisfied_to_index?(index)
@expectations[0...index].all? { |expectation| expectation.satisfied? }
end
def mocha_inspect
"#{@name.mocha_inspect}"
end
end
end
|