class Faraday::Adapter::Test

def call(env)

def call(env)
  super
  normalized_path = Faraday::Utils.normalize_path(env[:url])
  params_encoder = env.request.params_encoder || Faraday::Utils.default_params_encoder
  stub, meta = stubs.match(env[:method], normalized_path, env.request_headers, env[:body])
  if stub
    env[:params] = (query = env[:url].query) ?
      params_encoder.decode(query) : {}
    block_arity = stub.block.arity
    status, headers, body = (block_arity >= 0) ?
      stub.block.call(*[env, meta].take(block_arity)) :
      stub.block.call(env, meta)
    save_response(env, status, body, headers)
  else
    raise Stubs::NotFound, "no stubbed request for #{env[:method]} #{normalized_path} #{env[:body]}"
  end
  @app.call(env)
end

def configure

def configure
  yield(stubs)
end

def initialize(app, stubs=nil, &block)

def initialize(app, stubs=nil, &block)
  super(app)
  @stubs = stubs || Stubs.new
  configure(&block) if block
end