Class: Faraday::Adapter::Test
Overview
test = Faraday::Connection.new do
use Faraday::Adapter::Test do |stub|
stub.get '/nigiri/sake.json' do
[200, {}, 'hi world']
end
end
end
resp = test.get ‘/nigiri/sake.json’ resp.body # => ‘hi world’
Defined Under Namespace
Classes: Stub, Stubs
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Middleware
#create_form_params, #full_path_for, #process_body_for_request, setup_parallel_manager
Constructor Details
#initialize(app, stubs = nil, &block) ⇒ Test
Returns a new instance of Test.
84
85
86
87
88
|
# File 'lib/faraday/adapter/test.rb', line 84
def initialize(app, stubs=nil, &block)
super(app)
@stubs = stubs || Stubs.new
configure(&block) if block
end
|
Instance Attribute Details
Returns the value of attribute stubs.
15
16
17
|
# File 'lib/faraday/adapter/test.rb', line 15
def stubs
@stubs
end
|
Class Method Details
.loaded? ⇒ Boolean
17
|
# File 'lib/faraday/adapter/test.rb', line 17
def self.loaded?() false end
|
Instance Method Details
#call(env) ⇒ Object
103
104
105
106
107
108
109
110
111
112
113
114
|
# File 'lib/faraday/adapter/test.rb', line 103
def call(env)
if stub = stubs.match(env[:method], request_uri(env[:url]), env[:body])
status, , body = stub.block.call(env)
env.update \
:status => status,
:response_headers => ,
:body => body
else
raise "no stubbed request for #{env[:method]} #{request_uri(env[:url])} #{env[:body]}"
end
@app.call(env)
end
|
90
91
92
|
# File 'lib/faraday/adapter/test.rb', line 90
def configure
yield stubs
end
|
#request_uri(url) ⇒ Object
94
95
96
97
|
# File 'lib/faraday/adapter/test.rb', line 94
def request_uri(url)
(url.path != "" ? url.path : "/") +
(url.query ? "?#{sort_query_params(url.query)}" : "")
end
|
#sort_query_params(query) ⇒ Object
99
100
101
|
# File 'lib/faraday/adapter/test.rb', line 99
def sort_query_params(query)
query.split('&').sort.join('&')
end
|