module Pact::Messages::MessageFinder
Private Class Methods
find_response_for_provider_state(interactions, state)
click to toggle source
# File lib/pact/messages/message_finder.rb, line 44 def find_response_for_provider_state(interactions, state) interaction = interactions.find { |i| i.provider_state == state } unless interaction fail "State #{state} not found among interaction states #{interactions.map(&:provider_state)}" end interaction.response[:body] end
get_contract(provider_name, consumer_name, contract_uri = nil)
click to toggle source
# File lib/pact/messages/message_finder.rb, line 33 def get_contract(provider_name, consumer_name, contract_uri = nil) # search for it locally, if not found look on the pack broker Pact::Messages.consumer_world.find_contract(provider_name, consumer_name) || Pact::ConsumerContract.from_uri(contract_uri || pact_contract_uri(provider_name, consumer_name)) end
pact_contract_uri(provider, consumer)
click to toggle source
# File lib/pact/messages/message_finder.rb, line 39 def pact_contract_uri(provider, consumer) path = URI.encode("pacts/provider/#{provider}/consumer/#{consumer}/latest") URI("#{pact_broker_url}/#{path}") end
Public Instance Methods
get_message_contract(provider_name, consumer_name, provider_state = nil, contract_uri = nil)
click to toggle source
# File lib/pact/messages/message_finder.rb, line 20 def get_message_contract(provider_name, consumer_name, provider_state = nil, contract_uri = nil) contract = get_contract(provider_name, consumer_name, contract_uri) fail "Contract between #{provider_name} and #{consumer_name} not found" unless contract find_response_for_provider_state(contract.interactions, provider_state) end
get_message_sample(provider_name, consumer_name, provider_state = nil, contract_uri = nil)
click to toggle source
# File lib/pact/messages/message_finder.rb, line 26 def get_message_sample(provider_name, consumer_name, provider_state = nil, contract_uri = nil) Pact::Reification.from_term(get_message_contract(provider_name, consumer_name, provider_state, contract_uri)) end
pact_broker_url()
click to toggle source
# File lib/pact/messages/message_finder.rb, line 12 def pact_broker_url @pact_broker_url end
pact_broker_url=(url)
click to toggle source
# File lib/pact/messages/message_finder.rb, line 16 def pact_broker_url=(url) @pact_broker_url = url end