mirror of
				https://github.com/nov/fb_graph2
				synced 2023-03-27 23:22:15 -04:00 
			
		
		
		
	more spec
This commit is contained in:
		
							parent
							
								
									805ea39ca6
								
							
						
					
					
						commit
						47d008c23a
					
				
					 9 changed files with 153 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -13,7 +13,9 @@ module FbGraph2
 | 
			
		|||
 | 
			
		||||
    def initialize(id, attributes = {})
 | 
			
		||||
      super
 | 
			
		||||
      # TODO: handle custom attributes.
 | 
			
		||||
      if attributes.include? :data
 | 
			
		||||
        self.data = attributes[:data]
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -40,7 +40,7 @@ module FbGraph2
 | 
			
		|||
    def initialize(id, attributes = {})
 | 
			
		||||
      super
 | 
			
		||||
      if attributes.include? :category_list
 | 
			
		||||
        attributes[:category_list].collect do |page_category|
 | 
			
		||||
        self.category_list = attributes[:category_list].collect do |page_category|
 | 
			
		||||
          PageCategory.new page_category[:id], page_category
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										23
									
								
								spec/fb_graph2/application_spec.rb
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								spec/fb_graph2/application_spec.rb
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,23 @@
 | 
			
		|||
require 'spec_helper'
 | 
			
		||||
 | 
			
		||||
describe FbGraph2::User do
 | 
			
		||||
  describe '.app' do
 | 
			
		||||
    let(:klass) { FbGraph2::Application }
 | 
			
		||||
 | 
			
		||||
    it 'should not call API' do
 | 
			
		||||
      expect do
 | 
			
		||||
        app = klass.app 'token'
 | 
			
		||||
        app.should be_instance_of klass
 | 
			
		||||
      end.not_to request_to 'app'
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    context 'when fetched' do
 | 
			
		||||
      it 'should call API' do
 | 
			
		||||
        app = mock_graph :get, 'app', 'application/app' do
 | 
			
		||||
          klass.app('token').fetch
 | 
			
		||||
        end
 | 
			
		||||
        app.should be_instance_of klass
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
							
								
								
									
										18
									
								
								spec/fb_graph2/edge/achievements_spec.rb
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								spec/fb_graph2/edge/achievements_spec.rb
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,18 @@
 | 
			
		|||
require 'spec_helper'
 | 
			
		||||
 | 
			
		||||
describe FbGraph2::Edge::Achievements do
 | 
			
		||||
  context 'included in User' do
 | 
			
		||||
    describe '#achievements' do
 | 
			
		||||
      let(:me) { FbGraph2::User.me('token') }
 | 
			
		||||
      it 'should return an Array of FbGraph2::Achievement with page token' do
 | 
			
		||||
        pages = mock_graph :get, 'me/achievements', 'user/achievements', access_token: 'token' do
 | 
			
		||||
          me.achievements
 | 
			
		||||
        end
 | 
			
		||||
        pages.should_not be_blank
 | 
			
		||||
        pages.each do |page|
 | 
			
		||||
          page.should be_instance_of FbGraph2::Achievement
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
							
								
								
									
										33
									
								
								spec/fb_graph2/request_filter/debugger_spec.rb
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								spec/fb_graph2/request_filter/debugger_spec.rb
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,33 @@
 | 
			
		|||
require 'spec_helper'
 | 
			
		||||
 | 
			
		||||
describe FbGraph2::RequestFilter::Debugger do
 | 
			
		||||
  let(:resource_endpoint) { 'https://graph.facebook.com/matake' }
 | 
			
		||||
  let(:request) { HTTP::Message.new_request(:get, URI.parse(resource_endpoint)) }
 | 
			
		||||
  let(:response) { HTTP::Message.new_response({:hello => 'world'}.to_json) }
 | 
			
		||||
  let(:request_filter) { FbGraph2::RequestFilter::Debugger.new }
 | 
			
		||||
 | 
			
		||||
  describe '#filter_request' do
 | 
			
		||||
    it 'should log request' do
 | 
			
		||||
      [
 | 
			
		||||
        "======= [FbGraph2] API REQUEST STARTED =======",
 | 
			
		||||
        request.dump
 | 
			
		||||
      ].each do |output|
 | 
			
		||||
        FbGraph2.logger.should_receive(:info).with output
 | 
			
		||||
      end
 | 
			
		||||
      request_filter.filter_request(request)
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  describe '#filter_response' do
 | 
			
		||||
    it 'should log response' do
 | 
			
		||||
      [
 | 
			
		||||
        "--------------------------------------------------",
 | 
			
		||||
        response.dump,
 | 
			
		||||
        "======= [FbGraph2] API REQUEST FINISHED ======="
 | 
			
		||||
      ].each do |output|
 | 
			
		||||
        FbGraph2.logger.should_receive(:info).with output
 | 
			
		||||
      end
 | 
			
		||||
      request_filter.filter_response(request, response)
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -14,7 +14,7 @@ describe FbGraph2::User do
 | 
			
		|||
    context 'when fetched' do
 | 
			
		||||
      it 'should call API' do
 | 
			
		||||
        me = mock_graph :get, 'me', 'user/me' do
 | 
			
		||||
          FbGraph2::User.me('token').fetch
 | 
			
		||||
          klass.me('token').fetch
 | 
			
		||||
        end
 | 
			
		||||
        me.should be_instance_of klass
 | 
			
		||||
      end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										19
									
								
								spec/fb_graph2/util_spec.rb
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								spec/fb_graph2/util_spec.rb
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,19 @@
 | 
			
		|||
require 'spec_helper'
 | 
			
		||||
 | 
			
		||||
describe FbGraph2::Util do
 | 
			
		||||
  describe '.as_identifier' do
 | 
			
		||||
    context 'when FbGraph2::Node given' do
 | 
			
		||||
      it do
 | 
			
		||||
        FbGraph2::Util.as_identifier(
 | 
			
		||||
          FbGraph2::Node.new 'object_id'
 | 
			
		||||
        ).should == 'object_id'
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    context 'when String given' do
 | 
			
		||||
      it do
 | 
			
		||||
        FbGraph2::Util.as_identifier('object_id').should == 'object_id'
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
							
								
								
									
										15
									
								
								spec/mock_json/application/app.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								spec/mock_json/application/app.json
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,15 @@
 | 
			
		|||
{
 | 
			
		||||
  "category": "Business",
 | 
			
		||||
  "daily_active_users": "10000",
 | 
			
		||||
  "daily_active_users_rank": 1215,
 | 
			
		||||
  "description": "A tool to help browse objects within the Facebook Graph API, manage permissions, obtain access tokens and learn how it all works.",
 | 
			
		||||
  "icon_url": "https://fbcdn-photos-a-a.akamaihd.net/hphotos-ak-xpa1/t39.2081-0/851576_646264348772288_612357246_n.png",
 | 
			
		||||
  "link": "https://www.facebook.com/apps/application.php?id=145634995501895",
 | 
			
		||||
  "logo_url": "https://fbcdn-photos-a-a.akamaihd.net/hphotos-ak-xpa1/t39.2081-0/p75x75/851563_646263475439042_787584105_n.png",
 | 
			
		||||
  "monthly_active_users": "500000",
 | 
			
		||||
  "monthly_active_users_rank": 432,
 | 
			
		||||
  "name": "Graph API Explorer",
 | 
			
		||||
  "subcategory": "General",
 | 
			
		||||
  "weekly_active_users": "100000",
 | 
			
		||||
  "id": "145634995501895"
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										40
									
								
								spec/mock_json/user/achievements.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								spec/mock_json/user/achievements.json
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,40 @@
 | 
			
		|||
{
 | 
			
		||||
  "data": [{
 | 
			
		||||
    "id": "10150407675002277",
 | 
			
		||||
    "from": {
 | 
			
		||||
      "id": "579612276",
 | 
			
		||||
      "name": "Nov Matake"
 | 
			
		||||
    },
 | 
			
		||||
    "start_time": "2011-11-09T08:04:58+0000",
 | 
			
		||||
    "end_time": "2011-11-09T08:04:58+0000",
 | 
			
		||||
    "publish_time": "2011-11-09T08:04:58+0000",
 | 
			
		||||
    "application": {
 | 
			
		||||
      "name": "gem sample",
 | 
			
		||||
      "namespace": "fbgraphsample",
 | 
			
		||||
      "id": "134145643294322"
 | 
			
		||||
    },
 | 
			
		||||
    "data": {
 | 
			
		||||
      "achievement": {
 | 
			
		||||
        "id": "10150310611431721",
 | 
			
		||||
        "url": "http://fbgraphsample.heroku.com/achievements/1",
 | 
			
		||||
        "type": "game.achievement",
 | 
			
		||||
        "title": "1st Achievement"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "type": "games.achieves",
 | 
			
		||||
    "no_feed_story": false,
 | 
			
		||||
    "likes": {
 | 
			
		||||
      "count": 0,
 | 
			
		||||
      "can_like": true,
 | 
			
		||||
      "user_likes": false
 | 
			
		||||
    },
 | 
			
		||||
    "comments": {
 | 
			
		||||
      "count": 0,
 | 
			
		||||
      "can_comment": true,
 | 
			
		||||
      "comment_order": "chronological"
 | 
			
		||||
    }
 | 
			
		||||
  }],
 | 
			
		||||
  "paging": {
 | 
			
		||||
    "next": "https://graph.facebook.com/v2.0/579612276/achievements?limit=25&offset=25&__after_id=enc_AeyhCSdwSdwIMz2Kbpibnp2MZgYC1gasXThstsCJgxJdxwL9V_ss1OPBDnrxUgpTqAe1QOHjq-un-45-IJXJFrLv"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue