class Pact::Message::Consumer::Configuration::MessageBuilder

Attributes

consumer_name[RW]
pact_specification_version[RW]
provider_name[RW]

Public Class Methods

new(name, consumer_name, provider_name) click to toggle source
# File lib/pact/message/consumer/configuration/message_builder.rb, line 15
def initialize name, consumer_name, provider_name
  @name = name
  @consumer_name = consumer_name
  @provider_name = provider_name
  @pact_specification_version = nil
end

Public Instance Methods

finalize() click to toggle source
# File lib/pact/message/consumer/configuration/message_builder.rb, line 28
def finalize
  configure_consumer_contract_builder
end

Private Instance Methods

configure_consumer_contract_builder() click to toggle source
# File lib/pact/message/consumer/configuration/message_builder.rb, line 34
def configure_consumer_contract_builder
  consumer_contract_builder = create_consumer_contract_builder
  create_consumer_contract_builders_method consumer_contract_builder
  setup_verification(consumer_contract_builder)
  consumer_contract_builder
end
create_consumer_contract_builder() click to toggle source
# File lib/pact/message/consumer/configuration/message_builder.rb, line 41
def create_consumer_contract_builder
  consumer_contract_builder_fields = {
    consumer_name: consumer_name,
    provider_name: provider_name,
    pact_specification_version: pact_specification_version,
    pact_dir: Pact.configuration.pact_dir
  }
  Pact::Message::Consumer::ConsumerContractBuilder.new consumer_contract_builder_fields
end
create_consumer_contract_builders_method(consumer_contract_builder) click to toggle source
# File lib/pact/message/consumer/configuration/message_builder.rb, line 57
def create_consumer_contract_builders_method consumer_contract_builder
  Pact::Message::Consumer::ConsumerContractBuilders.send(:define_method, @name.to_sym) do
    consumer_contract_builder
  end

  Pact::Message.consumer_world.add_consumer_contract_builder consumer_contract_builder
end
setup_verification(consumer_contract_builder) click to toggle source
# File lib/pact/message/consumer/configuration/message_builder.rb, line 51
def setup_verification consumer_contract_builder
  Pact.configuration.add_message_provider_verification do | example_description |
    consumer_contract_builder.verify example_description
  end
end