class Pact::MockService::RequestHandlers::InteractionReplay
def find_response request_hash
def find_response request_hash actual_request = Pact::Consumer::Request::Actual.from_hash(request_hash) logger.info "Received request #{actual_request.method_and_path}" logger.debug pretty_generate request_hash candidate_interactions = expected_interactions.find_candidate_interactions actual_request matching_interactions = candidate_interactions.matching_interactions actual_request case matching_interactions.size when 0 then handle_unrecognised_request actual_request, candidate_interactions when 1 then handle_matched_interaction matching_interactions.first else handle_more_than_one_matching_interaction actual_request, matching_interactions end end
def handle_matched_interaction interaction
def handle_matched_interaction interaction HandleMatchedInteraction.call(interaction, verified_interactions, actual_interactions, logger) end
def handle_more_than_one_matching_interaction actual_request, matching_interactions
def handle_more_than_one_matching_interaction actual_request, matching_interactions multiple_interactions_handler.call(actual_request, matching_interactions, verified_interactions, actual_interactions, logger) end
def handle_unrecognised_request actual_request, candidate_interactions
def handle_unrecognised_request actual_request, candidate_interactions HandleUnrecognisedInteraction.call(actual_request, candidate_interactions, actual_interactions, logger) end
def initialize name, logger, session, cors_enabled = false, stub = false
def initialize name, logger, session, cors_enabled = false, stub = false @name = name @logger = logger @expected_interactions = session.expected_interactions @actual_interactions = session.actual_interactions @verified_interactions = session.verified_interactions @cors_enabled = cors_enabled @multiple_interactions_handler = stub ? HandleMultipleInteractionsFoundForStub : HandleMultipleInteractionsFound end
def logger_info_ap msg
def logger_info_ap msg logger.info msg end
def match? env
def match? env true # default handler end
def respond env
def respond env find_response request_as_hash_from(env) end