mirror of
				https://github.com/nov/fb_graph2
				synced 2023-03-27 23:22:15 -04:00 
			
		
		
		
	more specs
This commit is contained in:
		
							parent
							
								
									faff7034ba
								
							
						
					
					
						commit
						b11bf90f35
					
				
					 13 changed files with 222 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -39,7 +39,12 @@ module FbGraph2
 | 
			
		|||
 | 
			
		||||
    def initialize(id, attributes = {})
 | 
			
		||||
      super
 | 
			
		||||
      # TODO: handle custom attributes.
 | 
			
		||||
      if attributes.include? :category_list
 | 
			
		||||
        attributes[:category_list].collect do |page_category|
 | 
			
		||||
          PageCategory.new page_category[:id], page_category
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
      # TODO: handle other custom attributes.
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
							
								
								
									
										7
									
								
								lib/fb_graph2/page_category.rb
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								lib/fb_graph2/page_category.rb
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,7 @@
 | 
			
		|||
module FbGraph2
 | 
			
		||||
  class PageCategory < Node
 | 
			
		||||
    register_attributes(
 | 
			
		||||
      raw: [:name]
 | 
			
		||||
    )
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
							
								
								
									
										18
									
								
								spec/fb_graph2/edge/books_spec.rb
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								spec/fb_graph2/edge/books_spec.rb
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,18 @@
 | 
			
		|||
require 'spec_helper'
 | 
			
		||||
 | 
			
		||||
describe FbGraph2::Edge::Books do
 | 
			
		||||
  context 'included in User' do
 | 
			
		||||
    describe '#books' do
 | 
			
		||||
      let(:me) { FbGraph2::User.me('token') }
 | 
			
		||||
      it 'should return an Array of FbGraph2::Page with page token' do
 | 
			
		||||
        pages = mock_graph :get, 'me/books', 'user/books', access_token: 'token' do
 | 
			
		||||
          me.books
 | 
			
		||||
        end
 | 
			
		||||
        pages.should_not be_blank
 | 
			
		||||
        pages.each do |page|
 | 
			
		||||
          page.should be_instance_of FbGraph2::Page
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
							
								
								
									
										18
									
								
								spec/fb_graph2/edge/interests_spec.rb
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								spec/fb_graph2/edge/interests_spec.rb
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,18 @@
 | 
			
		|||
require 'spec_helper'
 | 
			
		||||
 | 
			
		||||
describe FbGraph2::Edge::Interests do
 | 
			
		||||
  context 'included in User' do
 | 
			
		||||
    describe '#interests' do
 | 
			
		||||
      let(:me) { FbGraph2::User.me('token') }
 | 
			
		||||
      it 'should return an Array of FbGraph2::Page with page token' do
 | 
			
		||||
        pages = mock_graph :get, 'me/interests', 'user/interests', access_token: 'token' do
 | 
			
		||||
          me.interests
 | 
			
		||||
        end
 | 
			
		||||
        pages.should_not be_blank
 | 
			
		||||
        pages.each do |page|
 | 
			
		||||
          page.should be_instance_of FbGraph2::Page
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
							
								
								
									
										18
									
								
								spec/fb_graph2/edge/movies_spec.rb
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								spec/fb_graph2/edge/movies_spec.rb
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,18 @@
 | 
			
		|||
require 'spec_helper'
 | 
			
		||||
 | 
			
		||||
describe FbGraph2::Edge::Movies do
 | 
			
		||||
  context 'included in User' do
 | 
			
		||||
    describe '#movies' do
 | 
			
		||||
      let(:me) { FbGraph2::User.me('token') }
 | 
			
		||||
      it 'should return an Array of FbGraph2::Page with page token' do
 | 
			
		||||
        pages = mock_graph :get, 'me/movies', 'user/movies', access_token: 'token' do
 | 
			
		||||
          me.movies
 | 
			
		||||
        end
 | 
			
		||||
        pages.should_not be_blank
 | 
			
		||||
        pages.each do |page|
 | 
			
		||||
          page.should be_instance_of FbGraph2::Page
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
							
								
								
									
										18
									
								
								spec/fb_graph2/edge/music_spec.rb
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								spec/fb_graph2/edge/music_spec.rb
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,18 @@
 | 
			
		|||
require 'spec_helper'
 | 
			
		||||
 | 
			
		||||
describe FbGraph2::Edge::Music do
 | 
			
		||||
  context 'included in User' do
 | 
			
		||||
    describe '#music' do
 | 
			
		||||
      let(:me) { FbGraph2::User.me('token') }
 | 
			
		||||
      it 'should return an Array of FbGraph2::Page with page token' do
 | 
			
		||||
        pages = mock_graph :get, 'me/music', 'user/music', access_token: 'token' do
 | 
			
		||||
          me.music
 | 
			
		||||
        end
 | 
			
		||||
        pages.should_not be_blank
 | 
			
		||||
        pages.each do |page|
 | 
			
		||||
          page.should be_instance_of FbGraph2::Page
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -4,7 +4,6 @@ describe FbGraph2::Edge::Notifications do
 | 
			
		|||
  context 'included in User' do
 | 
			
		||||
    describe '#notifications' do
 | 
			
		||||
      let(:me) { FbGraph2::User.me('token') }
 | 
			
		||||
 | 
			
		||||
      it 'should return an Array of FbGraph2::Notification' do
 | 
			
		||||
        notifications = mock_graph :get, 'me/notifications', 'user/notifications', access_token: 'token' do
 | 
			
		||||
          me.notifications
 | 
			
		||||
| 
						 | 
				
			
			@ -18,7 +17,6 @@ describe FbGraph2::Edge::Notifications do
 | 
			
		|||
 | 
			
		||||
    describe '#notification!' do
 | 
			
		||||
      let(:user) { FbGraph2::User.new('user_id') }
 | 
			
		||||
 | 
			
		||||
      it 'should return true' do
 | 
			
		||||
        mock_graph :post, 'user_id/notifications', 'success_true', access_token: 'app_token', params: {
 | 
			
		||||
          href: 'href', template: 'template'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										18
									
								
								spec/fb_graph2/edge/television_spec.rb
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								spec/fb_graph2/edge/television_spec.rb
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,18 @@
 | 
			
		|||
require 'spec_helper'
 | 
			
		||||
 | 
			
		||||
describe FbGraph2::Edge::Television do
 | 
			
		||||
  context 'included in User' do
 | 
			
		||||
    describe '#television' do
 | 
			
		||||
      let(:me) { FbGraph2::User.me('token') }
 | 
			
		||||
      it 'should return an Array of FbGraph2::Page with page token' do
 | 
			
		||||
        pages = mock_graph :get, 'me/television', 'user/television', access_token: 'token' do
 | 
			
		||||
          me.television
 | 
			
		||||
        end
 | 
			
		||||
        pages.should_not be_blank
 | 
			
		||||
        pages.each do |page|
 | 
			
		||||
          page.should be_instance_of FbGraph2::Page
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
							
								
								
									
										11
									
								
								spec/mock_json/user/books.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								spec/mock_json/user/books.json
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,11 @@
 | 
			
		|||
{
 | 
			
		||||
  "data": [{
 | 
			
		||||
    "category": "Book",
 | 
			
		||||
    "name": "Predictably Irrational",
 | 
			
		||||
    "created_time": "2011-07-27T15:49:06+0000",
 | 
			
		||||
    "id": "113167718696752"
 | 
			
		||||
  }],
 | 
			
		||||
  "paging": {
 | 
			
		||||
    "next": "https://graph.facebook.com/v2.0/579612276/books?limit=25&offset=25&__after_id=enc_AewjHX22qV_-BoIxoRMWHPno7BxZHunbqYgaxlHlJnH0x_Gza1bYpFD6V7Vve1HL-21x7kD5E_3QMLzdjM9pmK_f"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										41
									
								
								spec/mock_json/user/interests.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								spec/mock_json/user/interests.json
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,41 @@
 | 
			
		|||
{
 | 
			
		||||
  "data": [{
 | 
			
		||||
    "category": "Interest",
 | 
			
		||||
    "name": "#idcon 14th ~ BYOResume or DEAD! ~",
 | 
			
		||||
    "created_time": "2012-09-03T17:18:16+0000",
 | 
			
		||||
    "id": "309562105809363"
 | 
			
		||||
  }, {
 | 
			
		||||
    "category": "Interest",
 | 
			
		||||
    "name": "Heroku Meetup #6 Japan Heroku Lab",
 | 
			
		||||
    "created_time": "2012-09-03T03:07:14+0000",
 | 
			
		||||
    "id": "102424793243222"
 | 
			
		||||
  }, {
 | 
			
		||||
    "category": "Interest",
 | 
			
		||||
    "name": "Activity Streams",
 | 
			
		||||
    "created_time": "2011-06-30T22:57:47+0000",
 | 
			
		||||
    "id": "114998808528822"
 | 
			
		||||
  }, {
 | 
			
		||||
    "category": "Company",
 | 
			
		||||
    "name": "Social Web",
 | 
			
		||||
    "created_time": "2011-06-18T02:52:35+0000",
 | 
			
		||||
    "id": "105645299472577"
 | 
			
		||||
  }, {
 | 
			
		||||
    "category": "Interest",
 | 
			
		||||
    "name": "Open ID",
 | 
			
		||||
    "created_time": "2011-01-05T00:21:56+0000",
 | 
			
		||||
    "id": "106260522746492"
 | 
			
		||||
  }, {
 | 
			
		||||
    "category": "Interest",
 | 
			
		||||
    "name": "Open Social",
 | 
			
		||||
    "created_time": "2011-01-05T00:21:52+0000",
 | 
			
		||||
    "id": "107119605991729"
 | 
			
		||||
  }, {
 | 
			
		||||
    "category": "Interest",
 | 
			
		||||
    "name": "OAuth",
 | 
			
		||||
    "created_time": "2010-07-04T06:17:52+0000",
 | 
			
		||||
    "id": "104064209632570"
 | 
			
		||||
  }],
 | 
			
		||||
  "paging": {
 | 
			
		||||
    "next": "https://graph.facebook.com/v2.0/579612276/interests?limit=25&offset=25&__after_id=enc_AezLYldJHiKEyShbuOdR82cv0TtL4DwoXvFHvxocLB9dyJjlw96DIz3jwBNiERXgDjzAH_sT_ZhHU9QGJNxiOe3P"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										11
									
								
								spec/mock_json/user/movies.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								spec/mock_json/user/movies.json
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,11 @@
 | 
			
		|||
{
 | 
			
		||||
  "data": [{
 | 
			
		||||
    "category": "Movie",
 | 
			
		||||
    "name": "The Social Network",
 | 
			
		||||
    "created_time": "2011-01-05T00:17:17+0000",
 | 
			
		||||
    "id": "105460422821089"
 | 
			
		||||
  }],
 | 
			
		||||
  "paging": {
 | 
			
		||||
    "next": "https://graph.facebook.com/v2.0/579612276/movies?limit=25&offset=25&__after_id=enc_AewDz_Z8KNKb51zhWhUMYOJjref9qTPZpk1jT2P9sAXIzWmNSJSUU56XyMbJASE2c8qPbE1-WoFS8o6eCgs6K4Ui"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										45
									
								
								spec/mock_json/user/music.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								spec/mock_json/user/music.json
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,45 @@
 | 
			
		|||
{
 | 
			
		||||
  "data": [{
 | 
			
		||||
    "category": "Music",
 | 
			
		||||
    "name": "斉藤和義",
 | 
			
		||||
    "created_time": "2011-07-31T05:30:44+0000",
 | 
			
		||||
    "id": "108827045813193"
 | 
			
		||||
  }, {
 | 
			
		||||
    "category": "Musician/band",
 | 
			
		||||
    "name": "L'arc~en~Ciel",
 | 
			
		||||
    "created_time": "2011-07-31T05:28:30+0000",
 | 
			
		||||
    "id": "12039028077"
 | 
			
		||||
  }, {
 | 
			
		||||
    "category": "Musician/band",
 | 
			
		||||
    "name": "Utada Hikaru",
 | 
			
		||||
    "created_time": "2010-05-10T06:57:25+0000",
 | 
			
		||||
    "id": "105806242793688"
 | 
			
		||||
  }, {
 | 
			
		||||
    "category": "Musician/band",
 | 
			
		||||
    "category_list": [{
 | 
			
		||||
      "id": "180164648685982",
 | 
			
		||||
      "name": "Bands & Musicians"
 | 
			
		||||
    }],
 | 
			
		||||
    "name": "Avril Lavigne",
 | 
			
		||||
    "created_time": "2009-01-22T18:03:07+0000",
 | 
			
		||||
    "id": "5413509299"
 | 
			
		||||
  }, {
 | 
			
		||||
    "category": "Musician/band",
 | 
			
		||||
    "name": "Bank Band",
 | 
			
		||||
    "created_time": "2009-01-22T17:47:26+0000",
 | 
			
		||||
    "id": "28534671472"
 | 
			
		||||
  }, {
 | 
			
		||||
    "category": "Musician/band",
 | 
			
		||||
    "name": "The Yellow Monkey",
 | 
			
		||||
    "created_time": "2009-01-22T17:36:46+0000",
 | 
			
		||||
    "id": "32548904409"
 | 
			
		||||
  }, {
 | 
			
		||||
    "category": "Musician/band",
 | 
			
		||||
    "name": "Mr. Children",
 | 
			
		||||
    "created_time": "2009-01-22T17:36:26+0000",
 | 
			
		||||
    "id": "27868140174"
 | 
			
		||||
  }],
 | 
			
		||||
  "paging": {
 | 
			
		||||
    "next": "https://graph.facebook.com/v2.0/579612276/music?limit=25&offset=25&__after_id=enc_AeyVKBfCEuM8ZXcswQ4tW_IGxEZSp9qkwAdtOM37T5EWpk1I8POJ2Kn5tSqM2lWyx0Q"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										11
									
								
								spec/mock_json/user/television.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								spec/mock_json/user/television.json
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,11 @@
 | 
			
		|||
{
 | 
			
		||||
  "data": [{
 | 
			
		||||
    "category": "Tv show",
 | 
			
		||||
    "name": "Mobile Suit Zeta Gundam",
 | 
			
		||||
    "created_time": "2014-06-03T06:08:35+0000",
 | 
			
		||||
    "id": "105508046150348"
 | 
			
		||||
  }],
 | 
			
		||||
  "paging": {
 | 
			
		||||
    "next": "https://graph.facebook.com/v2.0/579612276/television?limit=25&offset=25&__after_id=enc_AewK-s0422fW15xZjOu3LxDtrkej8NQumXBW2ugVt3EuK52YArNQIKzoyq72k0V_vQ3_DGUsIp7COPzF82p_h4BK"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue