Sha256: 9529966dc42f794efd12106d603edd6a8bed07fdedeaf92c5cdc82988e090f34

Contents?: true

Size: 1.62 KB

Versions: 10

Compression:

Stored size: 1.62 KB

Contents

require 'helper'
require 'faraday'
require 'fullcontact'

describe Faraday::Response do
  before do
	FullContact.configure do |config|
		config.api_key = "api_key"
	end
    @client = FullContact::Client.new
  end

  {
    400 => FullContact::BadRequest,
    401 => FullContact::Unauthorized,
    403 => FullContact::Forbidden,
    404 => FullContact::NotFound,
    422 => FullContact::Invalid,
    500 => FullContact::InternalServerError,
    502 => FullContact::BadGateway,
    503 => FullContact::ServiceUnavailable,
  }.each do |status, exception|
    if (status >= 500)
      context "when HTTP status is #{status}" do
        before do
          stub_get('person.json').
            with(:query => {:apiKey => "api_key", :email => 'brawest@gmail.com'}).
            to_return(:status => status)
        end

        it "should raise #{exception.name} error" do
          lambda do
            @client.person(:email => 'brawest@gmail.com')
          end.should raise_error(exception)
        end
      end
    else
      [nil, "error", "errors"].each do |body|
        context "when HTTP status is #{status} and body is #{body||='nil'}" do
          before do
            body_message = '{"'+body+'":"test"}' unless body.nil?
         	stub_get('person.json').
				with(:query => {:apiKey => "api_key", :email => 'brawest@gmail.com'}).
               to_return(:status => status, :body => body_message)
          end

          it "should raise #{exception.name} error" do
            lambda do
             @client.person(:email => 'brawest@gmail.com')
            end.should raise_error(exception)
          end
        end
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
fullcontact-0.7.0 spec/faraday/response_spec.rb
fullcontact-0.6.1 spec/faraday/response_spec.rb
fullcontact-0.6.0 spec/faraday/response_spec.rb
fullcontact-0.5.0 spec/faraday/response_spec.rb
fullcontact-0.4.4 spec/faraday/response_spec.rb
fullcontact-0.4.1 spec/faraday/response_spec.rb
fullcontact-0.3.3 spec/faraday/response_spec.rb
fullcontact-0.3.2 spec/faraday/response_spec.rb
fullcontact-0.3.1 spec/faraday/response_spec.rb
fullcontact-0.3.0 spec/faraday/response_spec.rb