class Pact::MockService::RequestHandlers::HandleMultipleInteractionsFoundForStub

def self.call actual_request, matching_interactions, verified_interactions, actual_interactions, logger

def self.call actual_request, matching_interactions, verified_interactions, actual_interactions, logger
  logger.warn "Multiple interactions found for #{actual_request.method_and_path}:"
  matching_interactions.each do | interaction |
    logger.debug pretty_generate(Pact::MockService::InteractionDecorator.new(interaction))
  end
  response actual_request, matching_interactions, verified_interactions, actual_interactions, logger
end

def self.first_most_successful_interaction matching_interactions

def self.first_most_successful_interaction matching_interactions
  matching_interactions.sort{ |i1, i2| Pact::Reification.from_term(i1.response.status) <=> Pact::Reification.from_term(i2.response.status) }.first
end

def self.response actual_request, matching_interactions, verified_interactions, actual_interactions, logger

def self.response actual_request, matching_interactions, verified_interactions, actual_interactions, logger
  logger.warn "Sorting responses by response status and returning first."
  interaction = first_most_successful_interaction(matching_interactions)
  HandleMatchedInteraction.call(interaction, verified_interactions, actual_interactions, logger)
end