class Pact::Consumer::ConsumerContractBuilder
Attributes
Public Class Methods
Source
# File lib/pact/consumer/consumer_contract_builder.rb, line 16 def initialize(attributes) @interaction_builder = nil @consumer_contract_details = { consumer: {name: attributes[:consumer_name]}, provider: {name: attributes[:provider_name]}, pactfile_write_mode: attributes[:pactfile_write_mode].to_s, pact_dir: attributes.fetch(:pact_dir) } @mock_service_client = Pact::MockService::Client.new(attributes[:port], attributes[:host]) @mock_service_base_url = "http://#{attributes[:host]}:#{attributes[:port]}" end
Public Instance Methods
Source
# File lib/pact/consumer/consumer_contract_builder.rb, line 32 def given(provider_state) interaction_builder.given(provider_state) end
Source
# File lib/pact/consumer/consumer_contract_builder.rb, line 59 def handle_interaction_fully_defined interaction interaction.validate! mock_service_client.add_expected_interaction interaction #TODO: What will happen if duplicate added? self.interaction_builder = nil end
@raise Pact::InvalidInteractionError
Source
# File lib/pact/consumer/consumer_contract_builder.rb, line 44 def log msg mock_service_client.log msg end
Source
# File lib/pact/consumer/consumer_contract_builder.rb, line 36 def upon_receiving(description) interaction_builder.upon_receiving(description) end
Source
# File lib/pact/consumer/consumer_contract_builder.rb, line 40 def verify example_description mock_service_client.verify example_description end
Source
# File lib/pact/consumer/consumer_contract_builder.rb, line 52 def wait_for_interactions options = {} wait_max_seconds = options.fetch(:wait_max_seconds, 3) poll_interval = options.fetch(:poll_interval, 0.1) mock_service_client.wait_for_interactions wait_max_seconds, poll_interval end
Source
# File lib/pact/consumer/consumer_contract_builder.rb, line 28 def without_writing_to_pact interaction_builder.without_writing_to_pact end
Source
# File lib/pact/consumer/consumer_contract_builder.rb, line 48 def write_pact mock_service_client.write_pact @consumer_contract_details end
Private Instance Methods
Source
# File lib/pact/consumer/consumer_contract_builder.rb, line 70 def interaction_builder @interaction_builder ||= begin interaction_builder = InteractionBuilder.new do | interaction | handle_interaction_fully_defined(interaction) end interaction_builder end end