fb_graph 1.7.1 → 1.7.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (194) hide show
  1. data/.gitignore +21 -0
  2. data/.rspec +2 -0
  3. data/Gemfile +2 -0
  4. data/Gemfile.lock +52 -0
  5. data/README.rdoc +1 -0
  6. data/Rakefile +8 -34
  7. data/VERSION +1 -1
  8. data/fb_graph.gemspec +15 -433
  9. data/lib/fb_graph/connections/family.rb +14 -0
  10. data/lib/fb_graph/connections/permissions.rb +12 -0
  11. data/lib/fb_graph/page/category_attributes.rb +1 -0
  12. data/lib/fb_graph/user.rb +4 -1
  13. data/lib/fb_graph.rb +0 -1
  14. data/spec/fb_graph/application_spec.rb +8 -14
  15. data/spec/fb_graph/auth_spec.rb +1 -1
  16. data/spec/fb_graph/checkin_spec.rb +15 -11
  17. data/spec/fb_graph/collection_spec.rb +8 -7
  18. data/spec/fb_graph/connection_spec.rb +36 -25
  19. data/spec/fb_graph/connections/accounts_spec.rb +30 -26
  20. data/spec/fb_graph/connections/activities_spec.rb +19 -18
  21. data/spec/fb_graph/connections/albums_spec.rb +40 -37
  22. data/spec/fb_graph/connections/app_requests_spec.rb +7 -7
  23. data/spec/fb_graph/connections/attending_spec.rb +12 -12
  24. data/spec/fb_graph/connections/books_spec.rb +18 -17
  25. data/spec/fb_graph/connections/checkins_spec.rb +91 -91
  26. data/spec/fb_graph/connections/comments_spec.rb +41 -48
  27. data/spec/fb_graph/connections/declined_spec.rb +13 -9
  28. data/spec/fb_graph/connections/events_spec.rb +31 -32
  29. data/spec/fb_graph/connections/family_spec.rb +34 -0
  30. data/spec/fb_graph/connections/feed_spec.rb +65 -70
  31. data/spec/fb_graph/connections/former_participants_spec.rb +8 -7
  32. data/spec/fb_graph/connections/friend_lists_spec.rb +7 -7
  33. data/spec/fb_graph/connections/friends_spec.rb +29 -24
  34. data/spec/fb_graph/connections/games_spec.rb +15 -15
  35. data/spec/fb_graph/connections/groups_spec.rb +17 -16
  36. data/spec/fb_graph/connections/home_spec.rb +40 -35
  37. data/spec/fb_graph/connections/insights_spec.rb +74 -70
  38. data/spec/fb_graph/connections/interests_spec.rb +7 -7
  39. data/spec/fb_graph/connections/invited_spec.rb +7 -7
  40. data/spec/fb_graph/connections/likes_spec.rb +23 -19
  41. data/spec/fb_graph/connections/links_spec.rb +17 -19
  42. data/spec/fb_graph/connections/maybe_spec.rb +10 -12
  43. data/spec/fb_graph/connections/members_spec.rb +7 -7
  44. data/spec/fb_graph/connections/messages_spec.rb +8 -7
  45. data/spec/fb_graph/connections/movies_spec.rb +7 -7
  46. data/spec/fb_graph/connections/music_spec.rb +7 -7
  47. data/spec/fb_graph/connections/noreply_spec.rb +7 -7
  48. data/spec/fb_graph/connections/notes_spec.rb +18 -16
  49. data/spec/fb_graph/connections/participants_spec.rb +8 -7
  50. data/spec/fb_graph/connections/permissions_spec.rb +18 -0
  51. data/spec/fb_graph/connections/photos_spec.rb +24 -24
  52. data/spec/fb_graph/connections/posts_spec.rb +23 -26
  53. data/spec/fb_graph/connections/senders_spec.rb +8 -7
  54. data/spec/fb_graph/connections/statuses_spec.rb +45 -43
  55. data/spec/fb_graph/connections/subscriptions_spec.rb +7 -7
  56. data/spec/fb_graph/connections/tagged_spec.rb +30 -33
  57. data/spec/fb_graph/connections/television_spec.rb +7 -7
  58. data/spec/fb_graph/connections/test_users_spec.rb +13 -9
  59. data/spec/fb_graph/connections/threads_spec.rb +7 -7
  60. data/spec/fb_graph/connections/videos_spec.rb +7 -7
  61. data/spec/fb_graph/page/local_business_spec.rb +4 -4
  62. data/spec/fb_graph/page/movie_spec.rb +4 -4
  63. data/spec/fb_graph/page/music_spec.rb +4 -4
  64. data/spec/fb_graph/page/person_spec.rb +4 -4
  65. data/spec/fb_graph/page/product_spec.rb +4 -4
  66. data/spec/fb_graph/page_spec.rb +8 -16
  67. data/spec/fb_graph/post_spec.rb +50 -46
  68. data/spec/fb_graph/query/core_spec.rb +39 -51
  69. data/spec/fb_graph/searchable_spec.rb +13 -9
  70. data/spec/fb_graph/test_user_spec.rb +5 -11
  71. data/spec/fb_graph/user_spec.rb +96 -91
  72. data/spec/helpers/webmock_helper.rb +71 -0
  73. data/spec/{fake_json → mock_json}/albums/photos/matake_private.json +0 -0
  74. data/spec/{fake_json → mock_json}/albums/photos/post_with_valid_access_token.json +0 -0
  75. data/spec/{fake_json → mock_json}/applications/feed/public.json +0 -0
  76. data/spec/{fake_json → mock_json}/applications/subscriptions/fb_graph_private.json +0 -0
  77. data/spec/{fake_json → mock_json}/applications/test_users/created.json +0 -0
  78. data/spec/{fake_json → mock_json}/applications/test_users/private.json +0 -0
  79. data/spec/{fake_json → mock_json}/checkins/search_private.json +0 -0
  80. data/spec/{fake_json → mock_json}/checkins/search_public.json +0 -0
  81. data/spec/{fake_json → mock_json}/events/attending/post_with_valid_access_token.json +0 -0
  82. data/spec/{fake_json → mock_json}/events/attending/smartday_private.json +0 -0
  83. data/spec/{fake_json → mock_json}/events/declined/post_with_valid_access_token.json +0 -0
  84. data/spec/{fake_json → mock_json}/events/declined/smartday_private.json +0 -0
  85. data/spec/{fake_json → mock_json}/events/invited/smartday_private.json +0 -0
  86. data/spec/{fake_json → mock_json}/events/maybe/post_with_valid_access_token.json +0 -0
  87. data/spec/{fake_json → mock_json}/events/maybe/smartday_private.json +0 -0
  88. data/spec/{fake_json → mock_json}/events/noreply/smartday_private.json +0 -0
  89. data/spec/{fake_json → mock_json}/groups/members/emacs_private.json +0 -0
  90. data/spec/{fake_json → mock_json}/pages/categories/local_business.json +0 -0
  91. data/spec/{fake_json → mock_json}/pages/categories/movie.json +0 -0
  92. data/spec/{fake_json → mock_json}/pages/categories/music.json +0 -0
  93. data/spec/{fake_json → mock_json}/pages/categories/person.json +0 -0
  94. data/spec/{fake_json → mock_json}/pages/categories/product.json +0 -0
  95. data/spec/{fake_json → mock_json}/pages/checkins/gowalla_private.json +0 -0
  96. data/spec/{fake_json → mock_json}/pages/checkins/gowalla_public.json +0 -0
  97. data/spec/{fake_json → mock_json}/pages/insights/FbGraph_private.json +0 -0
  98. data/spec/{fake_json → mock_json}/pages/insights/FbGraph_public.json +0 -0
  99. data/spec/{fake_json → mock_json}/pages/insights/page_like_adds/FbGraph_private.json +0 -0
  100. data/spec/{fake_json → mock_json}/pages/insights/page_like_adds/day/FbGraph_private.json +0 -0
  101. data/spec/{fake_json → mock_json}/pages/notes/post_with_valid_access_token.json +0 -0
  102. data/spec/{fake_json → mock_json}/pages/platform_private.json +0 -0
  103. data/spec/{fake_json → mock_json}/pages/platform_public.json +0 -0
  104. data/spec/{fake_json → mock_json}/pages/search_fb_graph.json +0 -0
  105. data/spec/{fake_json → mock_json}/pages/search_google.json +0 -0
  106. data/spec/{fake_json → mock_json}/pages/statuses/platform_private.json +0 -0
  107. data/spec/{fake_json → mock_json}/pages/statuses/platform_public.json +0 -0
  108. data/spec/{fake_json → mock_json}/posts/comments/post_with_invalid_access_token.json +0 -0
  109. data/spec/{fake_json → mock_json}/posts/comments/post_with_valid_access_token.json +0 -0
  110. data/spec/{fake_json → mock_json}/posts/comments/post_without_access_token.json +0 -0
  111. data/spec/{fake_json → mock_json}/posts/likes/post_with_invalid_access_token.json +0 -0
  112. data/spec/{fake_json → mock_json}/posts/likes/post_with_valid_access_token.json +0 -0
  113. data/spec/{fake_json → mock_json}/posts/likes/post_without_access_token.json +0 -0
  114. data/spec/{fake_json → mock_json}/posts/no_comments.json +0 -0
  115. data/spec/{fake_json → mock_json}/posts/platform_private.json +0 -0
  116. data/spec/{fake_json → mock_json}/posts/platform_public.json +0 -0
  117. data/spec/{fake_json → mock_json}/posts/to_application.json +0 -0
  118. data/spec/{fake_json → mock_json}/posts/to_event.json +0 -0
  119. data/spec/{fake_json → mock_json}/posts/to_group.json +0 -0
  120. data/spec/{fake_json → mock_json}/query/user/with_invalid_token.json +0 -0
  121. data/spec/{fake_json → mock_json}/query/user/with_valid_token.json +0 -0
  122. data/spec/{fake_json → mock_json}/query/user/without_token.json +0 -0
  123. data/spec/{fake_json → mock_json}/statuses/with_likes.json +0 -0
  124. data/spec/{fake_json → mock_json}/thread/former_participants/private.json +0 -0
  125. data/spec/{fake_json → mock_json}/thread/messages/private.json +0 -0
  126. data/spec/{fake_json → mock_json}/thread/participants/private.json +0 -0
  127. data/spec/{fake_json → mock_json}/thread/senders/private.json +0 -0
  128. data/spec/{fake_json → mock_json}/token_response.json +0 -0
  129. data/spec/{fake_json → mock_json}/true.json +0 -0
  130. data/spec/{fake_json → mock_json}/users/accounts/matake_private.json +0 -0
  131. data/spec/{fake_json → mock_json}/users/accounts/matake_private_with_manage_pages_permission.json +0 -0
  132. data/spec/{fake_json → mock_json}/users/accounts/matake_public.json +0 -0
  133. data/spec/{fake_json → mock_json}/users/activities/arjun_private.json +0 -0
  134. data/spec/{fake_json → mock_json}/users/activities/arjun_public.json +0 -0
  135. data/spec/{fake_json → mock_json}/users/albums/matake_private.json +0 -0
  136. data/spec/{fake_json → mock_json}/users/albums/matake_public.json +0 -0
  137. data/spec/{fake_json → mock_json}/users/albums/post_with_valid_access_token.json +0 -0
  138. data/spec/{fake_json → mock_json}/users/app_requests/me_private.json +0 -0
  139. data/spec/{fake_json → mock_json}/users/arjun_private.json +0 -0
  140. data/spec/{fake_json → mock_json}/users/arjun_public.json +0 -0
  141. data/spec/{fake_json → mock_json}/users/books/matake_private.json +0 -0
  142. data/spec/{fake_json → mock_json}/users/books/matake_public.json +0 -0
  143. data/spec/{fake_json → mock_json}/users/checkins/mattt_private.json +0 -0
  144. data/spec/{fake_json → mock_json}/users/checkins/mattt_public.json +0 -0
  145. data/spec/{fake_json → mock_json}/users/checkins/posted.json +0 -0
  146. data/spec/{fake_json → mock_json}/users/events/matake_private.json +0 -0
  147. data/spec/{fake_json → mock_json}/users/events/matake_public.json +0 -0
  148. data/spec/{fake_json → mock_json}/users/events/post_with_valid_access_token.json +0 -0
  149. data/spec/mock_json/users/family/family_without_access_token.json +6 -0
  150. data/spec/mock_json/users/family/me_public.json +19 -0
  151. data/spec/{fake_json → mock_json}/users/feed/arjun_private.json +0 -0
  152. data/spec/{fake_json → mock_json}/users/feed/arjun_public.json +0 -0
  153. data/spec/{fake_json → mock_json}/users/feed/post_with_invalid_access_token.json +0 -0
  154. data/spec/{fake_json → mock_json}/users/feed/post_with_valid_access_token.json +0 -0
  155. data/spec/{fake_json → mock_json}/users/feed/post_without_access_token.json +0 -0
  156. data/spec/{fake_json → mock_json}/users/friend_lists/matake.json +0 -0
  157. data/spec/{fake_json → mock_json}/users/friends/arjun_private.json +0 -0
  158. data/spec/{fake_json → mock_json}/users/friends/arjun_public.json +0 -0
  159. data/spec/{fake_json → mock_json}/users/friends/me_private.json +0 -0
  160. data/spec/{fake_json → mock_json}/users/friends/me_public.json +0 -0
  161. data/spec/{fake_json → mock_json}/users/games/matake_private.json +0 -0
  162. data/spec/{fake_json → mock_json}/users/groups/matake_private.json +0 -0
  163. data/spec/{fake_json → mock_json}/users/groups/matake_public.json +0 -0
  164. data/spec/{fake_json → mock_json}/users/home/arjun_private.json +0 -0
  165. data/spec/{fake_json → mock_json}/users/home/arjun_public.json +0 -0
  166. data/spec/{fake_json → mock_json}/users/home/me_private.json +0 -0
  167. data/spec/{fake_json → mock_json}/users/home/me_private_next.json +0 -0
  168. data/spec/{fake_json → mock_json}/users/home/me_private_previous.json +0 -0
  169. data/spec/{fake_json → mock_json}/users/home/me_public.json +0 -0
  170. data/spec/{fake_json → mock_json}/users/interests/matake_private.json +0 -0
  171. data/spec/{fake_json → mock_json}/users/likes/arjun_private.json +0 -0
  172. data/spec/{fake_json → mock_json}/users/likes/arjun_public.json +0 -0
  173. data/spec/{fake_json → mock_json}/users/links/matake_private.json +0 -0
  174. data/spec/{fake_json → mock_json}/users/links/post_with_valid_access_token.json +0 -0
  175. data/spec/{fake_json → mock_json}/users/me_private.json +0 -0
  176. data/spec/{fake_json → mock_json}/users/me_public.json +0 -0
  177. data/spec/{fake_json → mock_json}/users/movies/matake_private.json +0 -0
  178. data/spec/{fake_json → mock_json}/users/music/matake_private.json +0 -0
  179. data/spec/{fake_json → mock_json}/users/notes/matake_private.json +0 -0
  180. data/spec/mock_json/users/permissions/me_private.json +70 -0
  181. data/spec/{fake_json → mock_json}/users/posts/arjun_private.json +0 -0
  182. data/spec/{fake_json → mock_json}/users/posts/arjun_public.json +0 -0
  183. data/spec/{fake_json → mock_json}/users/statuses/arjun_private.json +0 -0
  184. data/spec/{fake_json → mock_json}/users/statuses/arjun_public.json +0 -0
  185. data/spec/{fake_json → mock_json}/users/tagged/arjun_private.json +0 -0
  186. data/spec/{fake_json → mock_json}/users/tagged/arjun_public.json +0 -0
  187. data/spec/{fake_json → mock_json}/users/television/matake_private.json +0 -0
  188. data/spec/{fake_json → mock_json}/users/threads/me_private.json +0 -0
  189. data/spec/{fake_json → mock_json}/users/videos/kirk_private.json +0 -0
  190. data/spec/spec_helper.rb +2 -7
  191. metadata +267 -128
  192. data/.rspec-tm +0 -1
  193. data/spec/helpers/fake_json_helper.rb +0 -37
  194. data/spec/spec.opts +0 -3
@@ -2,104 +2,106 @@ require 'spec_helper'
2
2
 
3
3
  describe FbGraph::Connections::Checkins, '#checkins' do
4
4
  context 'when included by FbGraph::User' do
5
- before do
6
- fake_json(:get, 'mattt/checkins', 'users/checkins/mattt_public', :status => [401, 'Unauthorized'])
7
- fake_json(:get, 'mattt/checkins?access_token=access_token', 'users/checkins/mattt_private')
8
- end
9
-
10
5
  context 'when no access_token given' do
11
6
  it 'should raise FbGraph::Unauthorized' do
12
- lambda do
13
- FbGraph::User.new('mattt').checkins
14
- end.should raise_exception(FbGraph::Unauthorized)
7
+ mock_graph :get, 'mattt/checkins', 'users/checkins/mattt_public', :status => [401, 'Unauthorized'] do
8
+ lambda do
9
+ FbGraph::User.new('mattt').checkins
10
+ end.should raise_exception(FbGraph::Unauthorized)
11
+ end
15
12
  end
16
13
  end
17
14
 
18
15
  context 'when access_token is given' do
19
16
  it 'should return checkins as FbGraph::Checkin' do
20
- checkins = FbGraph::User.new('mattt', :access_token => 'access_token').checkins
21
- checkins.first.should == FbGraph::Checkin.new(
22
- '696876187499',
23
- :access_token => 'access_token',
24
- :from => {
25
- :id => '12820552',
26
- :name => 'Roger Pincombe'
27
- },
28
- :tags => {
29
- :data => [{
30
- :id => '4810308',
31
- :name => 'Mattt Thompson'
32
- }]
33
- },
34
- :message => 'Checking out Austin, TX',
35
- :place => {
36
- :id => '120454134658381',
37
- :name => 'Gowalla HQ',
38
- :location => {
39
- :latitude => 30.26876,
40
- :longitude => -97.74962
41
- }
42
- },
43
- :application => {
44
- :id => '6628568379',
45
- :name => 'Facebook for iPhone'
46
- },
47
- :created_time => '2010-09-08T00:09:25+0000'
48
- )
49
- checkins.each do |checkin|
50
- checkin.should be_instance_of(FbGraph::Checkin)
17
+ mock_graph :get, 'mattt/checkins', 'users/checkins/mattt_private', :params => {
18
+ :access_token => 'access_token'
19
+ } do
20
+ checkins = FbGraph::User.new('mattt', :access_token => 'access_token').checkins
21
+ checkins.first.should == FbGraph::Checkin.new(
22
+ '696876187499',
23
+ :access_token => 'access_token',
24
+ :from => {
25
+ :id => '12820552',
26
+ :name => 'Roger Pincombe'
27
+ },
28
+ :tags => {
29
+ :data => [{
30
+ :id => '4810308',
31
+ :name => 'Mattt Thompson'
32
+ }]
33
+ },
34
+ :message => 'Checking out Austin, TX',
35
+ :place => {
36
+ :id => '120454134658381',
37
+ :name => 'Gowalla HQ',
38
+ :location => {
39
+ :latitude => 30.26876,
40
+ :longitude => -97.74962
41
+ }
42
+ },
43
+ :application => {
44
+ :id => '6628568379',
45
+ :name => 'Facebook for iPhone'
46
+ },
47
+ :created_time => '2010-09-08T00:09:25+0000'
48
+ )
49
+ checkins.each do |checkin|
50
+ checkin.should be_instance_of(FbGraph::Checkin)
51
+ end
51
52
  end
52
53
  end
53
54
  end
54
55
  end
55
56
 
56
57
  context 'when included by FbGraph::Page' do
57
- before do
58
- fake_json(:get, 'gowalla/checkins', 'pages/checkins/gowalla_public', :status => [401, 'Unauthorized'])
59
- fake_json(:get, 'gowalla/checkins?access_token=access_token', 'pages/checkins/gowalla_private')
60
- end
61
-
62
58
  context 'when no access_token given' do
63
59
  it 'should raise FbGraph::Unauthorized' do
64
- lambda do
65
- FbGraph::Page.new('gowalla').checkins
66
- end.should raise_exception(FbGraph::Unauthorized)
60
+ mock_graph :get, 'gowalla/checkins', 'pages/checkins/gowalla_public', :status => [401, 'Unauthorized'] do
61
+ lambda do
62
+ FbGraph::Page.new('gowalla').checkins
63
+ end.should raise_exception(FbGraph::Unauthorized)
64
+ end
67
65
  end
68
66
  end
69
67
 
70
68
  context 'when access_token is given' do
71
69
  it 'should return checkins as FbGraph::Checkin' do
72
- checkins = FbGraph::Page.new('gowalla', :access_token => 'access_token').checkins
73
- checkins.first.should == FbGraph::Checkin.new(
74
- '696876187499',
75
- :access_token => 'access_token',
76
- :from => {
77
- :id => '12820552',
78
- :name => 'Roger Pincombe'
79
- },
80
- :tags => {
81
- :data => [{
82
- :id => '4810308',
83
- :name => 'Mattt Thompson'
84
- }]
85
- },
86
- :message => 'Checking out Austin, TX',
87
- :place => {
88
- :id => '120454134658381',
89
- :name => 'Gowalla HQ',
90
- :location => {
91
- :latitude => 30.26876,
92
- :longitude => -97.74962
93
- }
94
- },
95
- :application => {
96
- :id => '6628568379',
97
- :name => 'Facebook for iPhone'
98
- },
99
- :created_time => '2010-09-08T00:09:25+0000'
100
- )
101
- checkins.each do |checkin|
102
- checkin.should be_instance_of(FbGraph::Checkin)
70
+ mock_graph :get, 'gowalla/checkins', 'pages/checkins/gowalla_private', :params => {
71
+ :access_token => 'access_token'
72
+ } do
73
+ checkins = FbGraph::Page.new('gowalla', :access_token => 'access_token').checkins
74
+ checkins.first.should == FbGraph::Checkin.new(
75
+ '696876187499',
76
+ :access_token => 'access_token',
77
+ :from => {
78
+ :id => '12820552',
79
+ :name => 'Roger Pincombe'
80
+ },
81
+ :tags => {
82
+ :data => [{
83
+ :id => '4810308',
84
+ :name => 'Mattt Thompson'
85
+ }]
86
+ },
87
+ :message => 'Checking out Austin, TX',
88
+ :place => {
89
+ :id => '120454134658381',
90
+ :name => 'Gowalla HQ',
91
+ :location => {
92
+ :latitude => 30.26876,
93
+ :longitude => -97.74962
94
+ }
95
+ },
96
+ :application => {
97
+ :id => '6628568379',
98
+ :name => 'Facebook for iPhone'
99
+ },
100
+ :created_time => '2010-09-08T00:09:25+0000'
101
+ )
102
+ checkins.each do |checkin|
103
+ checkin.should be_instance_of(FbGraph::Checkin)
104
+ end
103
105
  end
104
106
  end
105
107
  end
@@ -107,19 +109,17 @@ describe FbGraph::Connections::Checkins, '#checkins' do
107
109
  end
108
110
 
109
111
  describe FbGraph::Connections::Checkins, '#checkin!' do
110
- before do
111
- fake_json :post, 'me/checkins', 'users/checkins/posted'
112
- end
113
-
114
112
  it 'should POST :user_id/checkins' do
115
- checkin = FbGraph::User.me('token').checkin!(
116
- :place => 'place_id',
117
- :coordinates => {
118
- :latitude => 30.26876,
119
- :longitude => -97.74962
120
- }.to_json
121
- )
122
- checkin.identifier.should == '10150090286117277'
123
- checkin.place.should == FbGraph::Place.new('place_id')
113
+ mock_graph :post, 'me/checkins', 'users/checkins/posted' do
114
+ checkin = FbGraph::User.me('token').checkin!(
115
+ :place => 'place_id',
116
+ :coordinates => {
117
+ :latitude => 30.26876,
118
+ :longitude => -97.74962
119
+ }.to_json
120
+ )
121
+ checkin.identifier.should == '10150090286117277'
122
+ checkin.place.should == FbGraph::Place.new('place_id')
123
+ end
124
124
  end
125
125
  end
@@ -2,21 +2,22 @@ require 'spec_helper'
2
2
 
3
3
  describe FbGraph::Connections::Comments, '#comments' do
4
4
  context 'when included by FbGraph::Post' do
5
- before do
6
- fake_json :get, 'no_comments', 'posts/no_comments'
7
- @post = FbGraph::Post.new('no_comments').fetch
5
+ let :post do
6
+ mock_graph :get, 'no_comments', 'posts/no_comments' do
7
+ FbGraph::Post.new('no_comments').fetch
8
+ end
8
9
  end
9
10
 
10
11
  it 'should use cached @_comments_ as default' do
11
12
  lambda do
12
- @post.comments
13
- end.should_not raise_error(FakeWeb::NetConnectNotAllowedError)
13
+ post.comments
14
+ end.should_not request_to "#{post.identifier}/comments"
14
15
  end
15
16
 
16
17
  it 'should ignore cached @_comments_ when options are given' do
17
18
  lambda do
18
- @post.comments(:no_cache => true)
19
- end.should_not request_to 'no_comments/comments'
19
+ post.comments(:no_cache => true)
20
+ end.should request_to "#{post.identifier}/comments"
20
21
  end
21
22
  end
22
23
  end
@@ -24,40 +25,38 @@ end
24
25
  describe FbGraph::Connections::Comments, '#comment!' do
25
26
  context 'when included by FbGraph::Post' do
26
27
  context 'when no access_token given' do
27
- before do
28
- fake_json(:post, '12345/comments', 'posts/comments/post_without_access_token', :status => [500, 'Internal Server Error'])
29
- end
30
-
31
28
  it 'should raise FbGraph::Exception' do
32
- lambda do
33
- FbGraph::Post.new('12345').comment!(:message => 'hello')
34
- end.should raise_exception(FbGraph::Exception)
29
+ mock_graph :post, '12345/comments', 'posts/comments/post_without_access_token', :status => [500, 'Internal Server Error'] do
30
+ lambda do
31
+ FbGraph::Post.new('12345').comment!(:message => 'hello')
32
+ end.should raise_exception(FbGraph::Exception)
33
+ end
35
34
  end
36
35
  end
37
36
 
38
37
  context 'when invalid access_token is given' do
39
- before do
40
- fake_json(:post, '12345/comments', 'posts/comments/post_with_invalid_access_token', :status => [500, 'Internal Server Error'])
41
- end
42
-
43
38
  it 'should raise FbGraph::Exception' do
44
- lambda do
45
- FbGraph::Post.new('12345', :access_token => 'invalid').comment!(:message => 'hello')
46
- end.should raise_exception(FbGraph::Exception)
39
+ mock_graph :post, '12345/comments', 'posts/comments/post_with_invalid_access_token', :status => [500, 'Internal Server Error'] do
40
+ lambda do
41
+ FbGraph::Post.new('12345', :access_token => 'invalid').comment!(:message => 'hello')
42
+ end.should raise_exception(FbGraph::Exception)
43
+ end
47
44
  end
48
45
  end
49
46
 
50
47
  context 'when valid access_token is given' do
51
48
  before do
52
- fake_json(:post, '12345/comments', 'posts/comments/post_with_valid_access_token')
49
+
53
50
  end
54
51
 
55
52
  it 'should return generated comment' do
56
- comment = FbGraph::Post.new('12345', :access_token => 'valid').comment!(:message => 'hello')
57
- comment.identifier.should == '117513961602338_119401698085884_535271'
58
- comment.access_token.should == 'valid'
59
- comment.message.should == 'hello'
60
- comment.access_token.should == 'valid'
53
+ mock_graph :post, '12345/comments', 'posts/comments/post_with_valid_access_token' do
54
+ comment = FbGraph::Post.new('12345', :access_token => 'valid').comment!(:message => 'hello')
55
+ comment.identifier.should == '117513961602338_119401698085884_535271'
56
+ comment.access_token.should == 'valid'
57
+ comment.message.should == 'hello'
58
+ comment.access_token.should == 'valid'
59
+ end
61
60
  end
62
61
  end
63
62
  end
@@ -66,36 +65,30 @@ end
66
65
  describe FbGraph::Connections::Comments, '#like!' do
67
66
  context 'when included by FbGraph::Post' do
68
67
  context 'when no access_token given' do
69
- before do
70
- fake_json(:post, '12345/likes', 'posts/likes/post_without_access_token', :status => [500, 'Internal Server Error'])
71
- end
72
-
73
68
  it 'should raise FbGraph::Exception' do
74
- lambda do
75
- FbGraph::Post.new('12345').like!
76
- end.should raise_exception(FbGraph::Exception)
69
+ mock_graph :post, '12345/likes', 'posts/likes/post_without_access_token', :status => [500, 'Internal Server Error'] do
70
+ lambda do
71
+ FbGraph::Post.new('12345').like!
72
+ end.should raise_exception(FbGraph::Exception)
73
+ end
77
74
  end
78
75
  end
79
76
 
80
77
  context 'when invalid access_token is given' do
81
- before do
82
- fake_json(:post, '12345/likes', 'posts/likes/post_with_invalid_access_token', :status => [500, 'Internal Server Error'])
83
- end
84
-
85
78
  it 'should raise FbGraph::Exception' do
86
- lambda do
87
- FbGraph::Post.new('12345', :access_token => 'invalid').like!
88
- end.should raise_exception(FbGraph::Exception)
79
+ mock_graph :post, '12345/likes', 'posts/likes/post_with_invalid_access_token', :status => [500, 'Internal Server Error'] do
80
+ lambda do
81
+ FbGraph::Post.new('12345', :access_token => 'invalid').like!
82
+ end.should raise_exception(FbGraph::Exception)
83
+ end
89
84
  end
90
85
  end
91
86
 
92
87
  context 'when valid access_token is given' do
93
- before do
94
- fake_json(:post, '12345/likes', 'posts/likes/post_with_valid_access_token')
95
- end
96
-
97
88
  it 'should return true' do
98
- FbGraph::Post.new('12345', :access_token => 'valid').like!.should be_true
89
+ mock_graph :post, '12345/likes', 'posts/likes/post_with_valid_access_token' do
90
+ FbGraph::Post.new('12345', :access_token => 'valid').like!.should be_true
91
+ end
99
92
  end
100
93
  end
101
94
  end
@@ -103,8 +96,8 @@ end
103
96
 
104
97
  describe FbGraph::Connections::Comments, '#unlike!' do
105
98
  it 'should DELETE /:object_id/likes' do
106
- lambda do
99
+ mock_graph :delete, '12345/likes', 'true', :params => {:access_token => 'valid'} do
107
100
  FbGraph::Post.new('12345', :access_token => 'valid').unlike!
108
- end.should request_to '12345/likes?access_token=valid', :delete
101
+ end
109
102
  end
110
103
  end
@@ -2,23 +2,27 @@ require 'spec_helper'
2
2
 
3
3
  describe FbGraph::Connections::Declined, '#declined' do
4
4
  before do
5
- fake_json(:get, 'smartday/declined?access_token=access_token', 'events/declined/smartday_private')
5
+
6
6
  end
7
7
 
8
8
  it 'should return declined users as FbGraph::User' do
9
- users = FbGraph::Event.new('smartday', :access_token => 'access_token').declined
10
- users.each do |user|
11
- user.should be_instance_of(FbGraph::User)
9
+ mock_graph :get, 'smartday/declined', 'events/declined/smartday_private', :params => {
10
+ :access_token => 'access_token'
11
+ } do
12
+ users = FbGraph::Event.new('smartday', :access_token => 'access_token').declined
13
+ users.each do |user|
14
+ user.should be_instance_of(FbGraph::User)
15
+ end
12
16
  end
13
17
  end
14
18
  end
15
19
 
16
20
  describe FbGraph::Connections::Declined, '#declined!' do
17
- before do
18
- fake_json(:post, '12345/declined', 'events/declined/post_with_valid_access_token')
19
- end
20
-
21
21
  it 'should return true' do
22
- FbGraph::Event.new('12345', :access_token => 'valid').declined!.should be_true
22
+ mock_graph :post, '12345/declined', 'events/declined/post_with_valid_access_token', :params => {
23
+ :access_token => 'valid'
24
+ } do
25
+ FbGraph::Event.new('12345', :access_token => 'valid').declined!.should be_true
26
+ end
23
27
  end
24
28
  end
@@ -2,32 +2,33 @@ require 'spec_helper'
2
2
 
3
3
  describe FbGraph::Connections::Events, '#events' do
4
4
  context 'when included by FbGraph::User' do
5
- before do
6
- fake_json(:get, 'matake/events', 'users/events/matake_public', :status => [401, 'Unauthorized'])
7
- fake_json(:get, 'matake/events?access_token=access_token', 'users/events/matake_private')
8
- end
9
-
10
5
  context 'when no access_token given' do
11
6
  it 'should raise FbGraph::Unauthorized' do
12
- lambda do
13
- FbGraph::User.new('matake').events
14
- end.should raise_exception(FbGraph::Unauthorized)
7
+ mock_graph :get, 'matake/events', 'users/events/matake_public', :status => [401, 'Unauthorized'] do
8
+ lambda do
9
+ FbGraph::User.new('matake').events
10
+ end.should raise_exception(FbGraph::Unauthorized)
11
+ end
15
12
  end
16
13
  end
17
14
 
18
15
  context 'when access_token is given' do
19
16
  it 'should return events as FbGraph::Event' do
20
- events = FbGraph::User.new('matake', :access_token => 'access_token').events
21
- events.first.should == FbGraph::Event.new(
22
- '116600818359630',
23
- :access_token => 'access_token',
24
- :name => 'The Loyal We @ Rainy Day Bookstore and Cafe',
25
- :start_time => '2010-04-29T01:30:00+0000',
26
- :end_time => '2010-04-29T04:30:00+0000',
27
- :location => 'Nishi Azabu'
28
- )
29
- events.each do |event|
30
- event.should be_instance_of(FbGraph::Event)
17
+ mock_graph :get, 'matake/events', 'users/events/matake_private', :params => {
18
+ :access_token => 'access_token'
19
+ } do
20
+ events = FbGraph::User.new('matake', :access_token => 'access_token').events
21
+ events.first.should == FbGraph::Event.new(
22
+ '116600818359630',
23
+ :access_token => 'access_token',
24
+ :name => 'The Loyal We @ Rainy Day Bookstore and Cafe',
25
+ :start_time => '2010-04-29T01:30:00+0000',
26
+ :end_time => '2010-04-29T04:30:00+0000',
27
+ :location => 'Nishi Azabu'
28
+ )
29
+ events.each do |event|
30
+ event.should be_instance_of(FbGraph::Event)
31
+ end
31
32
  end
32
33
  end
33
34
  end
@@ -36,20 +37,18 @@ end
36
37
 
37
38
  describe FbGraph::Connections::Events, '#events!' do
38
39
  context 'when included by FbGraph::User' do
39
- before do
40
- fake_json(:post, 'matake/events', 'users/events/post_with_valid_access_token')
41
- end
42
-
43
40
  it 'should return generated note' do
44
- event = FbGraph::User.new('matake', :access_token => 'valid').event!(
45
- :name => 'FbGraph test event',
46
- :start_time => Time.utc(2010, 5, 11, 10, 0, 0).to_i,
47
- :end_time => Time.utc(2010, 5, 11, 12, 0, 0).to_i
48
- )
49
- event.name.should == 'FbGraph test event'
50
- event.access_token.should == 'valid'
51
- event.start_time.should == Time.utc(2010, 5, 11, 10, 0, 0)
52
- event.end_time.should == Time.utc(2010, 5, 11, 12, 0, 0)
41
+ mock_graph :post, 'matake/events', 'users/events/post_with_valid_access_token' do
42
+ event = FbGraph::User.new('matake', :access_token => 'valid').event!(
43
+ :name => 'FbGraph test event',
44
+ :start_time => Time.utc(2010, 5, 11, 10, 0, 0).to_i,
45
+ :end_time => Time.utc(2010, 5, 11, 12, 0, 0).to_i
46
+ )
47
+ event.name.should == 'FbGraph test event'
48
+ event.access_token.should == 'valid'
49
+ event.start_time.should == Time.utc(2010, 5, 11, 10, 0, 0)
50
+ event.end_time.should == Time.utc(2010, 5, 11, 12, 0, 0)
51
+ end
53
52
  end
54
53
  end
55
54
  end
@@ -0,0 +1,34 @@
1
+ require 'spec_helper'
2
+
3
+ describe FbGraph::Connections::Family, '#family' do
4
+ context 'when included by FbGraph::User' do
5
+ context 'when no access_token given' do
6
+ it 'should raise FbGraph::Unauthorized' do
7
+ mock_graph :get, 'me/family', 'users/family/family_without_access_token', :status => [401, 'Unauthorized'] do
8
+ lambda do
9
+ FbGraph::User.new('me').family
10
+ end.should raise_exception(FbGraph::Unauthorized)
11
+ end
12
+ end
13
+ end
14
+
15
+ context 'when access_token is given' do
16
+ it 'should return family members as FbGraph::User' do
17
+ mock_graph :get, 'me/family', 'users/family/me_public', :params => {
18
+ :access_token => 'access_token'
19
+ } do
20
+ users = FbGraph::User.new('me', :access_token => 'access_token').family
21
+ users.first.should == FbGraph::User.new(
22
+ '720112389',
23
+ :access_token => 'access_token',
24
+ :name => 'TD Lee',
25
+ :relationship => 'brother'
26
+ )
27
+ users.each do |user|
28
+ user.should be_instance_of(FbGraph::User)
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end