Sha256: b9bb39d98bbc2bc331bdafcd4a3ea956b661c13f0171626ed10af30529378533

Contents?: true

Size: 2 KB

Versions: 2

Compression:

Stored size: 2 KB

Contents

require 'spec_helper'

describe 'Koala::Facebook::GraphAPIMethods' do
  before do
    @api = Koala::Facebook::API.new(@token)
    # app API
    @app_id = KoalaTest.app_id
    @app_access_token = KoalaTest.app_access_token
    @app_api = Koala::Facebook::API.new(@app_access_token)
  end

  describe 'post-processing for' do
    let(:result) { double("result") }
    let(:post_processing) { lambda {|arg| {"result" => result, "args" => arg} } }

    # Most API methods have the same signature, we test get_object representatively
    # and the other methods which do some post-processing locally
    context '#get_object' do
      it 'returns result of block' do
        @api.stub(:api).and_return(double("other results"))
        @api.get_object('koppel', &post_processing)["result"].should == result
      end
    end

    context '#get_picture' do
      it 'returns result of block' do
        @api.stub(:api).and_return("Location" => double("other result"))
        @api.get_picture('lukeshepard', &post_processing)["result"].should == result
      end
    end

    context '#fql_multiquery' do
      before do
        @api.should_receive(:get_object).and_return([
          {"name" => "query1", "fql_result_set" => [{"id" => 123}]},
          {"name" => "query2", "fql_result_set" => ["id" => 456]}
        ])
      end

      it 'is called with resolved response' do
        resolved_result = {
          'query1' => [{'id' => 123}],
          'query2' => [{'id' => 456}]
        }
        response = @api.fql_multiquery({}, &post_processing)
        response["args"].should == resolved_result
        response["result"].should == result
      end
    end

    context '#get_page_access_token' do
      it 'returns result of block' do
        token = Koala::MockHTTPService::APP_ACCESS_TOKEN
        @api.stub(:api).and_return("access_token" => token)
        response = @api.get_page_access_token('facebook', &post_processing)
        response["args"].should == token
        response["result"].should == result
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
koala-1.8.0 spec/cases/graph_api_spec.rb
koala-1.8.0rc1 spec/cases/graph_api_spec.rb