Sha256: 2d18719c739d5113baf934c931569dc17932b2968f5a8b2060f94853dd8d7c71

Contents?: true

Size: 1.88 KB

Versions: 7

Compression:

Stored size: 1.88 KB

Contents

if respond_to?(:require_relative, true)
  require_relative 'common'
else
  require File.dirname(__FILE__) + '/common'
end

describe RestGraph::Error do
  after do
    WebMock.reset!
    RR.verify
  end

  should 'have the right ancestors' do
    RestGraph::Error::AccessToken       .should < RestGraph::Error

    RestGraph::Error::InvalidAccessToken.should <
      RestGraph::Error::AccessToken

    RestGraph::Error::MissingAccessToken.should <
      RestGraph::Error::AccessToken
  end

  should 'parse right' do
    %w[OAuthInvalidTokenException OAuthException].each{ |type|
      RestGraph::Error.parse('error' => {'type' => type}).
        should.kind_of?(RestGraph::Error::InvalidAccessToken)
    }

    RestGraph::Error.parse('error' => {'type' => 'QueryParseException',
                                    'message' => 'An active access token..'}).
      should.kind_of?(RestGraph::Error::MissingAccessToken)

    RestGraph::Error.parse('error' => {'type' => 'QueryParseException',
                                    'message' => 'Oh active access token..'}).
      should.not.kind_of?(RestGraph::Error::MissingAccessToken)

    RestGraph::Error.parse('error_code' => 190).
      should.kind_of?(RestGraph::Error::InvalidAccessToken)

    RestGraph::Error.parse('error_code' => 104).
      should.kind_of?(RestGraph::Error::MissingAccessToken)

    RestGraph::Error.parse('error_code' => 999).
      should.not.kind_of?(RestGraph::Error::AccessToken)

    error = RestGraph::Error.parse(['not a hash'])
    error.should.not.kind_of?(RestGraph::Error::AccessToken)
    error.should    .kind_of?(RestGraph::Error)
  end

  should 'nuke cache upon errors' do
    stub_request(:get, 'https://graph.facebook.com/me').
      to_return(:body => '{"error":"wrong"}').times(2)

    rg = RestGraph.new(:cache => {}, :error_handler => lambda{|e,u|})
    rg.get('me'); rg.get('me')
    rg.cache.values.should == [nil]
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
rest-graph-2.0.3 test/test_error.rb
rest-graph-2.0.2 test/test_error.rb
rest-graph-2.0.1 test/test_error.rb
rest-graph-2.0.0 test/test_error.rb
rest-graph-1.9.1 test/test_error.rb
rest-graph-1.9.0 test/test_error.rb
rest-graph-1.8.0 test/test_error.rb