Sha256: 7a0419a80e0dddd7fa207c88bb7f18defd904ef885b30664c3873553770ea82b

Contents?: true

Size: 996 Bytes

Versions: 30

Compression:

Stored size: 996 Bytes

Contents

require 'net/http'
require 'pact/reification'
require 'pact/consumer_contract/interaction'

module Pact
  module Consumer
    class InteractionBuilder

      attr_reader :interaction

      def initialize &block
        @interaction = Interaction.new
        @callback = block
      end

      def without_writing_to_pact
        interaction.metadata ||= {}
        interaction.metadata[:write_to_pact] = false
        self
      end

      def upon_receiving description
        @interaction.description = description
        self
      end

      def given provider_state
        @interaction.provider_state = provider_state.nil? ? nil : provider_state.to_s
        self
      end

      def with(request_details)
        interaction.request = Pact::Request::Expected.from_hash(request_details)
        self
      end

      def will_respond_with(response)
        interaction.response = Pact::Response.new(response)
        @callback.call interaction
        self
      end

    end
  end
end

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
pact-1.66.1 lib/pact/consumer/interaction_builder.rb
pact-1.66.0 lib/pact/consumer/interaction_builder.rb
pact-1.65.3 lib/pact/consumer/interaction_builder.rb
pact-1.65.2 lib/pact/consumer/interaction_builder.rb
pact-1.65.1 lib/pact/consumer/interaction_builder.rb
pact-1.65.0 lib/pact/consumer/interaction_builder.rb
pact-1.64.0 lib/pact/consumer/interaction_builder.rb
pact-1.63.0 lib/pact/consumer/interaction_builder.rb
pact-1.62.0 lib/pact/consumer/interaction_builder.rb
pact-1.61.0 lib/pact/consumer/interaction_builder.rb
pact-1.60.0 lib/pact/consumer/interaction_builder.rb
pact-1.59.0 lib/pact/consumer/interaction_builder.rb
pact-1.58.0 lib/pact/consumer/interaction_builder.rb
pact-1.57.0 lib/pact/consumer/interaction_builder.rb
pact-1.56.0 lib/pact/consumer/interaction_builder.rb
pact-1.55.7 lib/pact/consumer/interaction_builder.rb
pact-1.55.6 lib/pact/consumer/interaction_builder.rb
pact-1.55.5 lib/pact/consumer/interaction_builder.rb
pact-1.55.4 lib/pact/consumer/interaction_builder.rb
pact-1.55.3 lib/pact/consumer/interaction_builder.rb