def invoke(parent_stub, *args, &block)
if (@expected_received_count == 0 && !@at_least) || ((@exactly || @at_most) && (@actual_received_count == @expected_received_count))
@actual_received_count += 1
@failed_fast = true
@error_generator.raise_expectation_error(@message, @expected_received_count, @actual_received_count, *args)
end
@order_group.handle_order_constraint self
begin
if @implementation
call_implementation(*args, &block)
elsif parent_stub
parent_stub.invoke(nil, *args, &block)
end
ensure
@actual_received_count += 1
end
end