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