Sha256: 6e4b5c87571ecf60b53070337bfde77d80f00450e39ce87605f614101d905e0d

Contents?: true

Size: 1.57 KB

Versions: 30

Compression:

Stored size: 1.57 KB

Contents

require 'pact/logging'
require 'rack/test'
require 'pact/consumer_contract/interaction'
require 'pact/provider/state/provider_state'
require 'pact/provider/state/provider_state_proxy'
require 'pact/provider/request'
require 'pact/provider/world'
require 'pact/provider/state/provider_state_manager'

module Pact
  module Provider
    module TestMethods

      include Pact::Logging
      include Rack::Test::Methods

      def replay_interaction interaction
        request = Request::Replayable.new(interaction.request)
        args = [request.path, request.body, request.headers]

        logger.info "Sending #{request.method.upcase} request to path: \"#{request.path}\" with headers: #{request.headers}, see debug logs for body"
        logger.debug "body :#{request.body}"
        response = self.send(request.method.downcase, *args)
        logger.info "Received response with status: #{response.status}, headers: #{response.headers}, see debug logs for body"
        logger.debug "body: #{response.body}"
      end

      def parse_body_from_response rack_response
        case rack_response.headers['Content-Type']
        when /json/
          JSON.load(rack_response.body)
        else
          rack_response.body
        end
      end

      def set_up_provider_state provider_state_name, consumer
        State::ProviderStateManager.new(provider_state_name, consumer).set_up_provider_state
      end

      def tear_down_provider_state provider_state_name, consumer
        State::ProviderStateManager.new(provider_state_name, consumer).tear_down_provider_state
      end

    end
  end
end

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
pact-1.12.1 lib/pact/provider/test_methods.rb
pact-1.12.0 lib/pact/provider/test_methods.rb
pact-1.11.1 lib/pact/provider/test_methods.rb
pact-1.11.0 lib/pact/provider/test_methods.rb
pact-1.10.0 lib/pact/provider/test_methods.rb
pact-1.9.6 lib/pact/provider/test_methods.rb
pact-1.9.5 lib/pact/provider/test_methods.rb
pact-1.9.4 lib/pact/provider/test_methods.rb
pact-1.9.3 lib/pact/provider/test_methods.rb
pact-1.9.2 lib/pact/provider/test_methods.rb
pact-1.9.1 lib/pact/provider/test_methods.rb
pact-1.9.0 lib/pact/provider/test_methods.rb
pact-1.8.1 lib/pact/provider/test_methods.rb
pact-1.8.0 lib/pact/provider/test_methods.rb
pact-1.7.0 lib/pact/provider/test_methods.rb
pact-1.6.0 lib/pact/provider/test_methods.rb
pact-1.5.0 lib/pact/provider/test_methods.rb
pact-1.4.0 lib/pact/provider/test_methods.rb
pact-1.4.0.rc4 lib/pact/provider/test_methods.rb
pact-1.4.0.rc3 lib/pact/provider/test_methods.rb