class Pact::Consumer::Configuration::MockService
Attributes
Public Class Methods
Source
# File lib/pact/consumer/configuration/mock_service.rb, line 16 def initialize name, consumer_name, provider_name @name = name @consumer_name = consumer_name @provider_name = provider_name @port = nil @host = "localhost" @standalone = false @verify = true @pact_specification_version = '2' @finalized = false end
Public Instance Methods
Source
# File lib/pact/consumer/configuration/mock_service.rb, line 50 def finalize raise 'Already finalized!' if @finalized register_mock_service configure_consumer_contract_builder @finalized = true end
Private Instance Methods
Source
# File lib/pact/consumer/configuration/mock_service.rb, line 68 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) if verify consumer_contract_builder end
Source
# File lib/pact/consumer/configuration/mock_service.rb, line 75 def create_consumer_contract_builder consumer_contract_builder_fields = { :consumer_name => consumer_name, :provider_name => provider_name, :pactfile_write_mode => Pact.configuration.pactfile_write_mode, :port => port, :host => host, :pact_dir => Pact.configuration.pact_dir } Pact::Consumer::ConsumerContractBuilder.new consumer_contract_builder_fields end
Source
# File lib/pact/consumer/configuration/mock_service.rb, line 96 def create_consumer_contract_builders_method consumer_contract_builder Pact::Consumer::ConsumerContractBuilders.send(:define_method, @name.to_sym) do consumer_contract_builder end Pact.consumer_world.add_consumer_contract_builder consumer_contract_builder end
This makes the consumer_contract_builder available via a module method with the given identifier as the method name. I feel this should be defined somewhere else, but I’m not sure where
Source
# File lib/pact/consumer/configuration/mock_service.rb, line 103 def mock_service_options { pact_specification_version: pact_specification_version, find_available_port: port.nil?, } end
Source
# File lib/pact/consumer/configuration/mock_service.rb, line 59 def register_mock_service unless standalone url = "http://#{host}#{port.nil? ? '' : ":#{port}"}" ret = Pact::MockService::AppManager.instance.register_mock_service_for(provider_name, url, mock_service_options) raise "pact-mock_service(v#{Pact::MockService::VERSION}) does not support 'find available port' feature" unless ret @port = ret end end
Source
# File lib/pact/consumer/configuration/mock_service.rb, line 87 def setup_verification consumer_contract_builder Pact.configuration.add_provider_verification do | example_description | consumer_contract_builder.verify example_description end end