class GiantClient::MockAdapter

Attributes

requests[RW]
responses[RW]

Public Class Methods

new() click to toggle source
# File lib/giant_client/mock_adapter.rb, line 8
def initialize
  @requests = []
  @responses = []
end

Public Instance Methods

last_request() click to toggle source
# File lib/giant_client/mock_adapter.rb, line 48
def last_request
  @requests[0]
end
last_response() click to toggle source
# File lib/giant_client/mock_adapter.rb, line 52
def last_response
  @responses[0]
end
request(method, opts) click to toggle source
# File lib/giant_client/mock_adapter.rb, line 13
def request(method, opts)
  last_request = MockRequest.new

  if BODYLESS_METHODS.include?(method)
    unless opts[:body] == ''
      last_request.raised_error = true
      last_request.error_type = GiantClient::Error::NotImplemented
    end
  end

  last_request.host = opts[:host]
  last_request.ssl = opts[:ssl]
  last_request.port = opts[:port]
  last_request.path = opts[:path]
  last_request.query = opts[:query]
  last_request.headers = opts[:headers]
  last_request.body = opts[:body]
  last_request.timeout = opts[:timeout]

  last_request.url = url_from_opts(opts)

  last_request.querystring = stringify_query(opts[:query])

  last_response = { :status_code => 200, :headers => {}, :body => nil }

  @requests.unshift(last_request)
  @responses.unshift(last_response)

  self
end
respond_with(hash) click to toggle source
# File lib/giant_client/mock_adapter.rb, line 44
def respond_with(hash)
  @responses[0] = @responses[0].merge(hash)
end