Class: Pact::MockService::RequestHandlers::HandleUnrecognisedInteraction
- Inherits:
-
Object
- Object
- Pact::MockService::RequestHandlers::HandleUnrecognisedInteraction
- Defined in:
- lib/pact/mock_service/request_handlers/interaction_replay.rb
Class Method Summary collapse
- .call(actual_request, candidate_interactions, actual_interactions, logger) ⇒ Object
- .interaction_mismatch(actual_request, candidate_interactions) ⇒ Object
- .log(interaction_mismatch, logger) ⇒ Object
- .response(interaction_mismatch) ⇒ Object
Class Method Details
.call(actual_request, candidate_interactions, actual_interactions, logger) ⇒ Object
108 109 110 111 112 113 114 115 116 117 |
# File 'lib/pact/mock_service/request_handlers/interaction_replay.rb', line 108 def self.call actual_request, candidate_interactions, actual_interactions, logger interaction_mismatch = interaction_mismatch(actual_request, candidate_interactions) if candidate_interactions.any? actual_interactions.register_interaction_mismatch interaction_mismatch else actual_interactions.register_unexpected_request actual_request end log interaction_mismatch, logger response interaction_mismatch end |
.interaction_mismatch(actual_request, candidate_interactions) ⇒ Object
127 128 129 |
# File 'lib/pact/mock_service/request_handlers/interaction_replay.rb', line 127 def self.interaction_mismatch actual_request, candidate_interactions Pact::MockService::Interactions::InteractionMismatch.new(candidate_interactions, actual_request) end |
.log(interaction_mismatch, logger) ⇒ Object
131 132 133 134 135 |
# File 'lib/pact/mock_service/request_handlers/interaction_replay.rb', line 131 def self.log interaction_mismatch, logger logger.error "No matching interaction found for #{interaction_mismatch.actual_request.method_and_path}" logger.error 'Interaction diffs for that route:' logger.error(interaction_mismatch.to_s) end |
.response(interaction_mismatch) ⇒ Object
119 120 121 122 123 124 125 |
# File 'lib/pact/mock_service/request_handlers/interaction_replay.rb', line 119 def self.response interaction_mismatch response = { message: "No interaction found for #{interaction_mismatch.actual_request.method_and_path}", interaction_diffs: interaction_mismatch.to_hash } [500, {'Content-Type' => 'application/json'}, [response.to_json]] end |