fb_graph 2.2.2 → 2.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile.lock +11 -15
- data/VERSION +1 -1
- data/lib/fb_graph/album.rb +1 -1
- data/lib/fb_graph/connections/comments.rb +1 -5
- data/lib/fb_graph/connections/former_participants.rb +1 -5
- data/lib/fb_graph/connections/likes.rb +1 -5
- data/lib/fb_graph/connections/messages.rb +1 -5
- data/lib/fb_graph/connections/participants.rb +1 -5
- data/lib/fb_graph/connections/question_options.rb +2 -6
- data/lib/fb_graph/connections/senders.rb +1 -5
- data/lib/fb_graph/connections/tags.rb +7 -8
- data/lib/fb_graph/link.rb +1 -1
- data/lib/fb_graph/message.rb +1 -1
- data/lib/fb_graph/node.rb +32 -7
- data/lib/fb_graph/note.rb +1 -1
- data/lib/fb_graph/open_graph/action.rb +1 -2
- data/lib/fb_graph/page.rb +2 -2
- data/lib/fb_graph/photo.rb +1 -2
- data/lib/fb_graph/post.rb +1 -2
- data/lib/fb_graph/question.rb +2 -4
- data/lib/fb_graph/searchable.rb +2 -1
- data/lib/fb_graph/status.rb +1 -2
- data/lib/fb_graph/thread.rb +5 -11
- data/lib/fb_graph/user_achievement.rb +1 -2
- data/lib/fb_graph/video.rb +1 -1
- data/spec/fb_graph/connections/comments_spec.rb +25 -13
- data/spec/fb_graph/connections/former_participants_spec.rb +30 -12
- data/spec/fb_graph/connections/likes_spec.rb +32 -0
- data/spec/fb_graph/connections/messages_spec.rb +30 -12
- data/spec/fb_graph/connections/participants_spec.rb +30 -12
- data/spec/fb_graph/connections/question_options_spec.rb +3 -3
- data/spec/fb_graph/connections/questions_spec.rb +13 -0
- data/spec/fb_graph/connections/senders_spec.rb +30 -12
- data/spec/fb_graph/page_spec.rb +9 -6
- data/spec/fb_graph/question_spec.rb +26 -25
- data/spec/fb_graph/searchable_spec.rb +17 -5
- data/spec/fb_graph/thread_spec.rb +0 -30
- data/spec/mock_json/pages/platform_public.json +2 -1
- data/spec/mock_json/users/questions/sample.json +465 -0
- data/spec/spec_helper.rb +0 -3
- metadata +21 -19
data/Gemfile.lock
CHANGED
@@ -1,35 +1,34 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
fb_graph (2.2.
|
4
|
+
fb_graph (2.2.2)
|
5
5
|
httpclient (>= 2.2.0.2)
|
6
6
|
rack-oauth2 (>= 0.9.4)
|
7
7
|
|
8
8
|
GEM
|
9
9
|
remote: http://rubygems.org/
|
10
10
|
specs:
|
11
|
-
actionpack (3.1.
|
12
|
-
activemodel (= 3.1.
|
13
|
-
activesupport (= 3.1.
|
11
|
+
actionpack (3.1.3)
|
12
|
+
activemodel (= 3.1.3)
|
13
|
+
activesupport (= 3.1.3)
|
14
14
|
builder (~> 3.0.0)
|
15
15
|
erubis (~> 2.7.0)
|
16
16
|
i18n (~> 0.6)
|
17
|
-
rack (~> 1.3.
|
17
|
+
rack (~> 1.3.5)
|
18
18
|
rack-cache (~> 1.1)
|
19
19
|
rack-mount (~> 0.8.2)
|
20
20
|
rack-test (~> 0.6.1)
|
21
|
-
sprockets (~> 2.0.
|
22
|
-
activemodel (3.1.
|
23
|
-
activesupport (= 3.1.
|
21
|
+
sprockets (~> 2.0.3)
|
22
|
+
activemodel (3.1.3)
|
23
|
+
activesupport (= 3.1.3)
|
24
24
|
builder (~> 3.0.0)
|
25
25
|
i18n (~> 0.6)
|
26
|
-
activesupport (3.1.
|
26
|
+
activesupport (3.1.3)
|
27
27
|
multi_json (~> 1.0)
|
28
28
|
addressable (2.2.6)
|
29
29
|
attr_required (0.0.3)
|
30
|
-
bouncy-castle-java (1.5.0146.1)
|
31
30
|
builder (3.0.0)
|
32
|
-
configatron (2.8.
|
31
|
+
configatron (2.8.4)
|
33
32
|
yamler (>= 0.1.0)
|
34
33
|
cover_me (1.2.0)
|
35
34
|
configatron
|
@@ -41,8 +40,6 @@ GEM
|
|
41
40
|
hike (1.2.1)
|
42
41
|
httpclient (2.2.3)
|
43
42
|
i18n (0.6.0)
|
44
|
-
jruby-openssl (0.7.4)
|
45
|
-
bouncy-castle-java
|
46
43
|
json (1.6.1)
|
47
44
|
multi_json (1.0.3)
|
48
45
|
rack (1.3.5)
|
@@ -73,13 +70,12 @@ GEM
|
|
73
70
|
rack (~> 1.0)
|
74
71
|
tilt (~> 1.1, != 1.3.0)
|
75
72
|
tilt (1.3.3)
|
76
|
-
webmock (1.7.
|
73
|
+
webmock (1.7.8)
|
77
74
|
addressable (~> 2.2, > 2.2.5)
|
78
75
|
crack (>= 0.1.7)
|
79
76
|
yamler (0.1.0)
|
80
77
|
|
81
78
|
PLATFORMS
|
82
|
-
java
|
83
79
|
ruby
|
84
80
|
|
85
81
|
DEPENDENCIES
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.2.
|
1
|
+
2.2.3
|
data/lib/fb_graph/album.rb
CHANGED
@@ -2,11 +2,7 @@ module FbGraph
|
|
2
2
|
module Connections
|
3
3
|
module Comments
|
4
4
|
def comments(options = {})
|
5
|
-
comments =
|
6
|
-
self.connection(:comments, options.merge(:cached_collection => @_comments_))
|
7
|
-
else
|
8
|
-
self.connection(:comments, options)
|
9
|
-
end
|
5
|
+
comments = self.connection(:comments, options)
|
10
6
|
comments.map! do |comment|
|
11
7
|
Comment.new(comment[:id], comment.merge(
|
12
8
|
:access_token => options[:access_token] || self.access_token
|
@@ -2,11 +2,7 @@ module FbGraph
|
|
2
2
|
module Connections
|
3
3
|
module FormerParticipants
|
4
4
|
def former_participants(options = {})
|
5
|
-
users =
|
6
|
-
self.connection(:former_participants, options.merge(:cached_collection => @_former_participants_))
|
7
|
-
else
|
8
|
-
self.connection(:former_participants, options)
|
9
|
-
end
|
5
|
+
users = self.connection(:former_participants, options)
|
10
6
|
users.map! do |user|
|
11
7
|
User.new(user[:id], user.merge(
|
12
8
|
:access_token => options[:access_token] || self.access_token
|
@@ -2,11 +2,7 @@ module FbGraph
|
|
2
2
|
module Connections
|
3
3
|
module Likes
|
4
4
|
def likes(options = {})
|
5
|
-
likes =
|
6
|
-
self.connection(:likes, options.merge(:cached_collection => @_likes_))
|
7
|
-
else
|
8
|
-
self.connection(:likes, options)
|
9
|
-
end
|
5
|
+
likes = self.connection(:likes, options)
|
10
6
|
likes.map! do |like|
|
11
7
|
like.merge!(
|
12
8
|
:access_token => options[:access_token] || self.access_token
|
@@ -2,11 +2,7 @@ module FbGraph
|
|
2
2
|
module Connections
|
3
3
|
module Messages
|
4
4
|
def messages(options = {})
|
5
|
-
messages =
|
6
|
-
self.connection(:messages, options.merge(:cached_collection => @_messages_))
|
7
|
-
else
|
8
|
-
self.connection(:messages, options)
|
9
|
-
end
|
5
|
+
messages = self.connection(:messages, options)
|
10
6
|
messages.map! do |message|
|
11
7
|
Message.new(message[:id], message.merge(
|
12
8
|
:access_token => options[:access_token] || self.access_token
|
@@ -2,11 +2,7 @@ module FbGraph
|
|
2
2
|
module Connections
|
3
3
|
module Participants
|
4
4
|
def participants(options = {})
|
5
|
-
users =
|
6
|
-
self.connection(:participants, options.merge(:cached_collection => @_participants_))
|
7
|
-
else
|
8
|
-
self.connection(:participants, options)
|
9
|
-
end
|
5
|
+
users = self.connection(:participants, options)
|
10
6
|
users.map! do |user|
|
11
7
|
User.new(user[:id], user.merge(
|
12
8
|
:access_token => options[:access_token] || self.access_token
|
@@ -1,12 +1,8 @@
|
|
1
1
|
module FbGraph
|
2
2
|
module Connections
|
3
3
|
module QuestionOptions
|
4
|
-
def
|
5
|
-
question_options =
|
6
|
-
self.connection(:question_options, opts.merge(:cached_collection => @_options_))
|
7
|
-
else
|
8
|
-
self.connection(:question_options, opts)
|
9
|
-
end
|
4
|
+
def question_options(opts = {})
|
5
|
+
question_options = self.connection(:question_options, opts)
|
10
6
|
question_options.map! do |option|
|
11
7
|
QuestionOption.new(option[:id], option.merge(
|
12
8
|
:access_token => opts[:access_token] || self.access_token
|
@@ -2,11 +2,7 @@ module FbGraph
|
|
2
2
|
module Connections
|
3
3
|
module Senders
|
4
4
|
def senders(options = {})
|
5
|
-
users =
|
6
|
-
self.connection(:senders, options.merge(:cached_collection => @_senders_))
|
7
|
-
else
|
8
|
-
self.connection(:senders, options)
|
9
|
-
end
|
5
|
+
users = self.connection(:senders, options)
|
10
6
|
users.map! do |user|
|
11
7
|
User.new(user[:id], user.merge(
|
12
8
|
:access_token => options[:access_token] || self.access_token
|
@@ -2,15 +2,14 @@ module FbGraph
|
|
2
2
|
module Connections
|
3
3
|
module Tags
|
4
4
|
def tags(options = {})
|
5
|
-
tags =
|
6
|
-
|
7
|
-
|
5
|
+
tags = self.connection(:tags, options)
|
6
|
+
if tags.first.is_a?(Tag)
|
7
|
+
tags
|
8
8
|
else
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
Tag.new(tag)
|
9
|
+
tags.map! do |tag|
|
10
|
+
tag[:access_token] ||= options[:access_token] || self.access_token
|
11
|
+
Tag.new(tag)
|
12
|
+
end
|
14
13
|
end
|
15
14
|
end
|
16
15
|
|
data/lib/fb_graph/link.rb
CHANGED
data/lib/fb_graph/message.rb
CHANGED
data/lib/fb_graph/node.rb
CHANGED
@@ -7,9 +7,10 @@ module FbGraph
|
|
7
7
|
attr_accessor :identifier, :endpoint, :access_token
|
8
8
|
|
9
9
|
def initialize(identifier, options = {})
|
10
|
-
@identifier
|
11
|
-
@endpoint
|
12
|
-
@access_token
|
10
|
+
@identifier = identifier
|
11
|
+
@endpoint = File.join(ROOT_URL, identifier.to_s)
|
12
|
+
@access_token = options[:access_token]
|
13
|
+
@cached_collections = {}
|
13
14
|
end
|
14
15
|
|
15
16
|
def fetch(options = {})
|
@@ -24,16 +25,21 @@ module FbGraph
|
|
24
25
|
end
|
25
26
|
|
26
27
|
def connection(connection, options = {})
|
27
|
-
|
28
|
-
|
28
|
+
Connection.new(
|
29
|
+
self,
|
30
|
+
connection,
|
31
|
+
options.merge(
|
32
|
+
:collection => collection_for(connection, options)
|
33
|
+
)
|
34
|
+
)
|
29
35
|
end
|
30
36
|
|
31
37
|
def update(options = {})
|
32
|
-
post
|
38
|
+
post options
|
33
39
|
end
|
34
40
|
|
35
41
|
def destroy(options = {})
|
36
|
-
delete
|
42
|
+
delete options
|
37
43
|
end
|
38
44
|
|
39
45
|
protected
|
@@ -68,6 +74,25 @@ module FbGraph
|
|
68
74
|
|
69
75
|
private
|
70
76
|
|
77
|
+
def collection_for(connection, options = {})
|
78
|
+
collection = if @cached_collections.has_key?(connection) && options.blank?
|
79
|
+
@cached_collections[connection]
|
80
|
+
else
|
81
|
+
get options.merge(:connection => connection)
|
82
|
+
end
|
83
|
+
Collection.new collection
|
84
|
+
end
|
85
|
+
|
86
|
+
def cache_collections(attributes, *connections)
|
87
|
+
if (attributes.keys - [:access_token]).present?
|
88
|
+
connections.each do |connection|
|
89
|
+
attribute_key, connection = connection.to_a.flatten if connection.is_a?(Hash)
|
90
|
+
@cached_collections[connection] = attributes[attribute_key || connection]
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
alias_method :cache_collection, :cache_collections
|
95
|
+
|
71
96
|
def build_endpoint(params = {})
|
72
97
|
File.join([self.endpoint, params.delete(:connection), params.delete(:connection_scope)].compact.collect(&:to_s))
|
73
98
|
end
|
data/lib/fb_graph/note.rb
CHANGED
data/lib/fb_graph/page.rb
CHANGED
@@ -22,11 +22,11 @@ module FbGraph
|
|
22
22
|
include Connections::Videos
|
23
23
|
extend Searchable
|
24
24
|
|
25
|
-
attr_accessor :name, :username, :category, :like_count
|
25
|
+
attr_accessor :name, :username, :category, :like_count, :talking_about_count
|
26
26
|
|
27
27
|
def initialize(identifier, attributes = {})
|
28
28
|
super
|
29
|
-
[:name, :username, :category].each do |key|
|
29
|
+
[:name, :username, :category, :talking_about_count].each do |key|
|
30
30
|
self.send :"#{key}=", attributes[key]
|
31
31
|
end
|
32
32
|
@like_count = attributes[:likes] || attributes[:fan_count]
|
data/lib/fb_graph/photo.rb
CHANGED
data/lib/fb_graph/post.rb
CHANGED
data/lib/fb_graph/question.rb
CHANGED
@@ -17,10 +17,8 @@ module FbGraph
|
|
17
17
|
Time.parse(attributes[:updated_time]).utc
|
18
18
|
end
|
19
19
|
|
20
|
-
|
21
|
-
|
22
|
-
Collection.new(attributes[:options])
|
23
|
-
end
|
20
|
+
# cached connection
|
21
|
+
cache_collection attributes, :options => :question_options
|
24
22
|
end
|
25
23
|
end
|
26
24
|
end
|
data/lib/fb_graph/searchable.rb
CHANGED
@@ -23,9 +23,10 @@ module FbGraph
|
|
23
23
|
|
24
24
|
# The majority of Graph API searches use 'q' but some, like AdKeywordSuggestion
|
25
25
|
# use an alternate search query param
|
26
|
-
def search_query_param
|
26
|
+
def self.search_query_param
|
27
27
|
:q
|
28
28
|
end
|
29
|
+
delegate :search_query_param, :to => Searchable
|
29
30
|
end
|
30
31
|
end
|
31
32
|
|
data/lib/fb_graph/status.rb
CHANGED
data/lib/fb_graph/thread.rb
CHANGED
@@ -18,11 +18,7 @@ module FbGraph
|
|
18
18
|
end
|
19
19
|
|
20
20
|
# cached connection
|
21
|
-
|
22
|
-
@_participants_ = Collection.new(attributes[:participants])
|
23
|
-
@_former_participants_ = Collection.new(attributes[:former_articipants])
|
24
|
-
@_senders_ = Collection.new(attributes[:senders])
|
25
|
-
@_tags_ = Collection.new(attributes[:tags])
|
21
|
+
cache_collections attributes, :messages, :participants, :former_participants, :senders, :tags
|
26
22
|
end
|
27
23
|
|
28
24
|
# NOTE:
|
@@ -52,18 +48,16 @@ module FbGraph
|
|
52
48
|
end
|
53
49
|
@unread = attributes[:unread] == 1
|
54
50
|
@unseen = attributes[:unseen] == 1
|
55
|
-
|
51
|
+
|
52
|
+
# cached connection
|
53
|
+
cache_collection attributes, :comments
|
56
54
|
end
|
57
55
|
|
58
56
|
# NOTE:
|
59
57
|
# This is a connection named "comments" but returns "messages" and different from normal "comments" connection.
|
60
58
|
# Therefore I put this connection here not under FbGraph::Connections.
|
61
59
|
def messages(options = {})
|
62
|
-
messages =
|
63
|
-
self.connection(:comments, options.merge(:cached_collection => @_messages_))
|
64
|
-
else
|
65
|
-
self.connection(:comments, options)
|
66
|
-
end
|
60
|
+
messages = self.connection(:comments, options)
|
67
61
|
messages.map! do |message|
|
68
62
|
Message.new(message[:id], message.merge(
|
69
63
|
:access_token => options[:access_token] || self.access_token
|
data/lib/fb_graph/video.rb
CHANGED
@@ -8,16 +8,32 @@ describe FbGraph::Connections::Comments, '#comments' do
|
|
8
8
|
end
|
9
9
|
end
|
10
10
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
11
|
+
describe 'cached comments' do
|
12
|
+
context 'when cached' do
|
13
|
+
it 'should use cache' do
|
14
|
+
lambda do
|
15
|
+
post.comments
|
16
|
+
end.should_not request_to "#{post.identifier}/comments"
|
17
|
+
end
|
18
|
+
|
19
|
+
context 'when options are specified' do
|
20
|
+
it 'should not use cache' do
|
21
|
+
lambda do
|
22
|
+
post.comments(:no_cache => true)
|
23
|
+
end.should request_to "#{post.identifier}/comments?no_cache=true"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
16
27
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
28
|
+
context 'otherwise' do
|
29
|
+
let(:post) { FbGraph::Post.new(12345, :access_token => 'access_token') }
|
30
|
+
|
31
|
+
it 'should not use cache' do
|
32
|
+
lambda do
|
33
|
+
post.comments
|
34
|
+
end.should request_to '12345/comments?access_token=access_token'
|
35
|
+
end
|
36
|
+
end
|
21
37
|
end
|
22
38
|
end
|
23
39
|
end
|
@@ -45,10 +61,6 @@ describe FbGraph::Connections::Comments, '#comment!' do
|
|
45
61
|
end
|
46
62
|
|
47
63
|
context 'when valid access_token is given' do
|
48
|
-
before do
|
49
|
-
|
50
|
-
end
|
51
|
-
|
52
64
|
it 'should return generated comment' do
|
53
65
|
mock_graph :post, '12345/comments', 'posts/comments/post_with_valid_access_token' do
|
54
66
|
comment = FbGraph::Post.new('12345', :access_token => 'valid').comment!(:message => 'hello')
|
@@ -1,18 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe FbGraph::Connections::FormerParticipants, '#former_participants' do
|
4
|
-
it 'should use cached contents as default' do
|
5
|
-
lambda do
|
6
|
-
FbGraph::Thread.new(12345, :access_token => 'access_token').former_participants
|
7
|
-
end.should_not request_to '12345/former_participants?access_token=access_token'
|
8
|
-
end
|
9
|
-
|
10
|
-
it 'should not use cached contents when options are specified' do
|
11
|
-
lambda do
|
12
|
-
FbGraph::Thread.new(12345).former_participants(:no_cache => true)
|
13
|
-
end.should request_to '12345/former_participants?no_cache=true'
|
14
|
-
end
|
15
|
-
|
16
4
|
it 'should return former_participants as FbGraph::User' do
|
17
5
|
mock_graph :get, '12345/former_participants', 'thread/former_participants/private', :access_token => 'access_token', :params => {
|
18
6
|
:no_cache => 'true'
|
@@ -23,4 +11,34 @@ describe FbGraph::Connections::FormerParticipants, '#former_participants' do
|
|
23
11
|
end
|
24
12
|
end
|
25
13
|
end
|
14
|
+
|
15
|
+
describe 'cached messages' do
|
16
|
+
context 'when cached' do
|
17
|
+
let(:thread) { FbGraph::Thread.new(12345, :access_token => 'access_token', :former_participants => {}) }
|
18
|
+
|
19
|
+
it 'should use cache' do
|
20
|
+
lambda do
|
21
|
+
thread.former_participants
|
22
|
+
end.should_not request_to '12345/former_participants?access_token=access_token'
|
23
|
+
end
|
24
|
+
|
25
|
+
context 'when options are specified' do
|
26
|
+
it 'should not use cache' do
|
27
|
+
lambda do
|
28
|
+
thread.former_participants(:no_cache => true)
|
29
|
+
end.should request_to '12345/former_participants?access_token=access_token&no_cache=true'
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
context 'otherwise' do
|
35
|
+
let(:thread) { FbGraph::Thread.new(12345, :access_token => 'access_token') }
|
36
|
+
|
37
|
+
it 'should not use cache' do
|
38
|
+
lambda do
|
39
|
+
thread.former_participants
|
40
|
+
end.should request_to '12345/former_participants?access_token=access_token'
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
26
44
|
end
|
@@ -12,6 +12,38 @@ describe FbGraph::Connections::Likes do
|
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
15
|
+
context 'when included by FbGraph::Post' do
|
16
|
+
let(:post) { FbGraph::Post.new('post_id', :access_token => 'access_token', :likes => {}) }
|
17
|
+
|
18
|
+
describe 'cached likes' do
|
19
|
+
context 'when cached' do
|
20
|
+
it 'should use cache' do
|
21
|
+
lambda do
|
22
|
+
post.likes
|
23
|
+
end.should_not request_to 'post_id/likes?access_token=access_token'
|
24
|
+
end
|
25
|
+
|
26
|
+
context 'when options are specified' do
|
27
|
+
it 'should not use cache' do
|
28
|
+
lambda do
|
29
|
+
post.likes(:no_cache => true)
|
30
|
+
end.should request_to 'post_id/likes?access_token=access_token&no_cache=true'
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
context 'otherwise' do
|
36
|
+
let(:post) { FbGraph::Post.new(12345, :access_token => 'access_token') }
|
37
|
+
|
38
|
+
it 'should not use cache' do
|
39
|
+
lambda do
|
40
|
+
post.likes
|
41
|
+
end.should request_to '12345/likes?access_token=access_token'
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
15
47
|
context 'when included by FbGraph::Status' do
|
16
48
|
context 'when cached collection exists' do
|
17
49
|
before do
|
@@ -1,18 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe FbGraph::Connections::Messages, '#messages' do
|
4
|
-
it 'should use cached contents as default' do
|
5
|
-
lambda do
|
6
|
-
FbGraph::Thread.new(12345, :access_token => 'access_token').messages
|
7
|
-
end.should_not request_to '12345/messages?access_token=access_token'
|
8
|
-
end
|
9
|
-
|
10
|
-
it 'should not use cached contents when options are specified' do
|
11
|
-
lambda do
|
12
|
-
FbGraph::Thread.new(12345).messages(:no_cache => true)
|
13
|
-
end.should request_to '12345/messages?no_cache=true'
|
14
|
-
end
|
15
|
-
|
16
4
|
it 'should return threads as FbGraph::Message' do
|
17
5
|
mock_graph :get, '12345/messages', 'thread/messages/private', :params => {:no_cache => 'true'}, :access_token => 'access_token' do
|
18
6
|
messages = FbGraph::Thread.new(12345, :access_token => 'access_token').messages(:no_cache => true)
|
@@ -21,4 +9,34 @@ describe FbGraph::Connections::Messages, '#messages' do
|
|
21
9
|
end
|
22
10
|
end
|
23
11
|
end
|
12
|
+
|
13
|
+
describe 'cached messages' do
|
14
|
+
context 'when cached' do
|
15
|
+
let(:thread) { FbGraph::Thread.new(12345, :access_token => 'access_token', :messages => {}) }
|
16
|
+
|
17
|
+
it 'should use cache' do
|
18
|
+
lambda do
|
19
|
+
thread.messages
|
20
|
+
end.should_not request_to '12345/messages?access_token=access_token'
|
21
|
+
end
|
22
|
+
|
23
|
+
context 'when options are specified' do
|
24
|
+
it 'should not use cache' do
|
25
|
+
lambda do
|
26
|
+
thread.messages(:no_cache => true)
|
27
|
+
end.should request_to '12345/messages?access_token=access_token&no_cache=true'
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
context 'otherwise' do
|
33
|
+
let(:thread) { FbGraph::Thread.new(12345, :access_token => 'access_token') }
|
34
|
+
|
35
|
+
it 'should not use cache' do
|
36
|
+
lambda do
|
37
|
+
thread.messages
|
38
|
+
end.should request_to '12345/messages?access_token=access_token'
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
24
42
|
end
|