class RoadForest::TestSupport::HTTPClient::Exchange

Attributes

body[RW]
dispatcher[RW]
headers[R]
method[RW]
query_params[R]
uri[RW]

Public Class Methods

new() click to toggle source
# File lib/roadforest/test-support/http-client.rb, line 63
def initialize
  @uri = nil
  @method = nil
  @headers = Webmachine::Headers.new
  @query_params = {}
  @req = nil
  @res = nil
end

Public Instance Methods

do_request() click to toggle source
# File lib/roadforest/test-support/http-client.rb, line 105
def do_request
  self.uri = Addressable::URI.parse(uri)
  uri.query_values = (uri.query_values || {}).merge(query_params)


  @req = Webmachine::Request.new(method, uri, headers, RequestBody.new(body))
  @res = Webmachine::Response.new

  dispatcher.dispatch(@req, @res)

  return @res
end
header(name, value) click to toggle source

Set a single header for the next request.

# File lib/roadforest/test-support/http-client.rb, line 85
def header(name, value)
  @headers[name] = value
end
headers=(hash) click to toggle source
# File lib/roadforest/test-support/http-client.rb, line 89
def headers=(hash)
  hash.each do |key, value|
    header(key, value)
  end
end
query_param(name, value) click to toggle source
# File lib/roadforest/test-support/http-client.rb, line 95
def query_param(name, value)
  @query_params[name] = value
end
query_params=(hash) click to toggle source
# File lib/roadforest/test-support/http-client.rb, line 99
def query_params=(hash)
  hash.each do |key, value|
    query_param(key, value)
  end
end
request() click to toggle source

Returns the request object.

# File lib/roadforest/test-support/http-client.rb, line 75
def request
  @req || webmachine_test_error('No request object yet. Issue a request first.')
end
response() click to toggle source

Returns the response object after a request has been made.

# File lib/roadforest/test-support/http-client.rb, line 80
def response
  @res || webmachine_test_error('No response yet. Issue a request first!')
end

Private Instance Methods

webmachine_test_error(msg) click to toggle source
# File lib/roadforest/test-support/http-client.rb, line 153
def webmachine_test_error(msg)
  raise Webmachine::Test::Error.new(msg)
end