Sha256: 29a2a8cf2cddef0df7d44068e8d68a2962386b39e77481a34a398d1b54c29f06

Contents?: true

Size: 1.6 KB

Versions: 3

Compression:

Stored size: 1.6 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( '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( 'brawest@gmail.com')
            end.should raise_error(exception)
          end
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
fullcontact-0.2.0 spec/faraday/response_spec.rb
fullcontact-0.1.4 spec/faraday/response_spec.rb
fullcontact-0.1.3 spec/faraday/response_spec.rb