Sha256: 9e1d8a0c5e32381d00ef9d4ec250b2aaebf8126ba2fb69bc3e11497a5f8a4feb

Contents?: true

Size: 1.9 KB

Versions: 15

Compression:

Stored size: 1.9 KB

Contents

require File.expand_path(File.join(File.dirname(__FILE__), 'helper'))

class ResponseMiddlewareTest < Faraday::TestCase
  def setup
    @conn = Faraday.new do |b|
      b.response :raise_error
      b.adapter :test do |stub|
        stub.get('ok')        { [200, {'Content-Type' => 'text/html'}, '<body></body>'] }
        stub.get('not-found') { [404, {'X-Reason' => 'because'}, 'keep looking'] }
        stub.get('error')     { [500, {'X-Error' => 'bailout'}, 'fail'] }
      end
    end
  end

  class ResponseUpcaser < Faraday::Response::Middleware
    def parse(body)
      body.upcase
    end
  end

  def test_success
    assert_nothing_raised do
      @conn.get('ok')
    end
  end

  def test_raises_not_found
    error = assert_raises Faraday::Error::ResourceNotFound do
      @conn.get('not-found')
    end
    assert_equal 'the server responded with status 404', error.message
    assert_equal 'because', error.response[:headers]['X-Reason']
  end

  def test_raises_error
    error = assert_raises Faraday::Error::ClientError do
      @conn.get('error')
    end
    assert_equal 'the server responded with status 500', error.message
    assert_equal 'bailout', error.response[:headers]['X-Error']
  end

  def test_upcase
    @conn.builder.insert(0, ResponseUpcaser)
    assert_equal '<BODY></BODY>', @conn.get('ok').body
  end
end

class ResponseNoBodyMiddleWareTest < Faraday::TestCase
  def setup
    @conn = Faraday.new do |b|
      b.response :raise_error
      b.adapter :test do |stub|
        stub.get('not_modified') { [304, nil, nil] }
        stub.get('no_content') { [204, nil, nil] }
      end
    end
    @conn.builder.insert(0, NotCalled)
  end

  class NotCalled < Faraday::Response::Middleware
    def parse(body)
      raise "this should not be called"
    end
  end

  def test_204
    assert_equal nil, @conn.get('no_content').body
  end

  def test_304
    assert_equal nil, @conn.get('not_modified').body
  end
end

Version data entries

15 entries across 15 versions & 4 rubygems

Version Path
faraday-0.8.11 test/response_middleware_test.rb
faraday-0.8.10 test/response_middleware_test.rb
vagrant-tiktalik-0.0.3 vendor/bundle/ruby/2.0.0/gems/faraday-0.8.9/test/response_middleware_test.rb
faraday-0.8.9 test/response_middleware_test.rb
faraday-0.8.8 test/response_middleware_test.rb
faraday-0.8.7 test/response_middleware_test.rb
vagrant-actionio-0.0.9 vendor/bundle/gems/faraday-0.8.6/test/response_middleware_test.rb
faraday-0.8.6 test/response_middleware_test.rb
faraday-0.8.5 test/response_middleware_test.rb
faraday-0.8.4 test/response_middleware_test.rb
faraday-0.8.2 test/response_middleware_test.rb
avdi-faraday-0.8.1 test/response_middleware_test.rb
faraday-0.8.1 test/response_middleware_test.rb
faraday-0.8.0 test/response_middleware_test.rb
faraday-0.8.0.rc2 test/response_middleware_test.rb