class Pact::Provider::Request::Replayable
Constants
Attributes
Public Class Methods
Source
# File lib/pact/provider/request.rb, line 14 def initialize expected_request, state_params = nil @expected_request = expected_request @state_params = state_params end
Public Instance Methods
Source
# File lib/pact/provider/request.rb, line 27 def body case expected_request.body when String then expected_request.body when NullExpectation then '' else Pact::Generators.apply_generators(expected_request, "body", reified_body, @state_params) end end
Source
# File lib/pact/provider/request.rb, line 36 def headers request_headers = {} # https://github.com/pact-foundation/pact-ruby/pull/327 request_headers.merge!('HOST' => 'localhost') if defined?(Sinatra) return request_headers if expected_request.headers.is_a?(Pact::NullExpectation) expected_request.headers.each do |key, value| request_headers[key] = Pact::Reification.from_term(value) end request_headers = Pact::Generators.apply_generators(expected_request, "header", request_headers, @state_params) request_headers.map{ |key,value| [rack_request_header_for(key), value]}.to_h end
Source
# File lib/pact/provider/request.rb, line 19 def method expected_request.method end
Source
# File lib/pact/provider/request.rb, line 23 def path Pact::Generators.apply_generators(expected_request, "path", expected_request.full_path, @state_params) end
Private Instance Methods
Source
# File lib/pact/provider/request.rb, line 63 def rack_request_header_for header with_http_prefix(header.to_s.upcase).tr('-', '_') end
Source
# File lib/pact/provider/request.rb, line 67 def rack_request_value_for value Array(value).join("\n") end
Source
# File lib/pact/provider/request.rb, line 54 def reified_body rb = Pact::Reification.from_term(expected_request.body) if rb.is_a?(String) rb else JSON.dump(rb) end end
Source
# File lib/pact/provider/request.rb, line 71 def with_http_prefix header NO_HTTP_PREFIX.include?(header) ? header : "HTTP_#{header}" end