fb_graph 1.3.9 → 1.4.0
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/VERSION +1 -1
- data/fb_graph.gemspec +369 -344
- data/lib/fb_graph/connections/former_participants.rb +18 -0
- data/lib/fb_graph/connections/messages.rb +18 -0
- data/lib/fb_graph/connections/participants.rb +18 -0
- data/lib/fb_graph/connections/senders.rb +18 -0
- data/lib/fb_graph/connections/threads.rb +14 -0
- data/lib/fb_graph/message.rb +33 -0
- data/lib/fb_graph/thread.rb +33 -0
- data/lib/fb_graph/user.rb +1 -0
- data/lib/fb_graph.rb +2 -0
- data/spec/fake_json/thread/former_participants/private.json +14 -0
- data/spec/fake_json/thread/messages/private.json +43 -0
- data/spec/fake_json/thread/participants/private.json +14 -0
- data/spec/fake_json/thread/senders/private.json +14 -0
- data/spec/fake_json/users/threads/me_private.json +86 -0
- data/spec/fb_graph/connections/app_requests_spec.rb +1 -1
- data/spec/fb_graph/connections/former_participants_spec.rb +26 -0
- data/spec/fb_graph/connections/messages_spec.rb +26 -0
- data/spec/fb_graph/connections/participants_spec.rb +26 -0
- data/spec/fb_graph/connections/senders_spec.rb +26 -0
- data/spec/fb_graph/connections/threads_spec.rb +14 -0
- data/spec/fb_graph/message_spec.rb +49 -0
- data/spec/fb_graph/thread_spec.rb +86 -0
- data/spec/restclient_with_ssl_support_spec.rb +23 -0
- metadata +37 -10
- data/.gitignore +0 -21
@@ -0,0 +1,18 @@
|
|
1
|
+
module FbGraph
|
2
|
+
module Connections
|
3
|
+
module FormerParticipants
|
4
|
+
def former_participants(options = {})
|
5
|
+
users = if @_former_participants_ && options.blank?
|
6
|
+
self.connection(:former_participants, options.merge(:cached_collection => @_former_participants_))
|
7
|
+
else
|
8
|
+
self.connection(:former_participants, options)
|
9
|
+
end
|
10
|
+
users.map! do |user|
|
11
|
+
User.new(user.delete(:id), user.merge(
|
12
|
+
:access_token => options[:access_token] || self.access_token
|
13
|
+
))
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module FbGraph
|
2
|
+
module Connections
|
3
|
+
module Messages
|
4
|
+
def messages(options = {})
|
5
|
+
messages = if @_messages_ && options.blank?
|
6
|
+
self.connection(:messages, options.merge(:cached_collection => @_messages_))
|
7
|
+
else
|
8
|
+
self.connection(:messages, options)
|
9
|
+
end
|
10
|
+
messages.map! do |message|
|
11
|
+
Message.new(message.delete(:id), message.merge(
|
12
|
+
:access_token => options[:access_token] || self.access_token
|
13
|
+
))
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module FbGraph
|
2
|
+
module Connections
|
3
|
+
module Participants
|
4
|
+
def participants(options = {})
|
5
|
+
users = if @_participants_ && options.blank?
|
6
|
+
self.connection(:participants, options.merge(:cached_collection => @_participants_))
|
7
|
+
else
|
8
|
+
self.connection(:participants, options)
|
9
|
+
end
|
10
|
+
users.map! do |user|
|
11
|
+
User.new(user.delete(:id), user.merge(
|
12
|
+
:access_token => options[:access_token] || self.access_token
|
13
|
+
))
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module FbGraph
|
2
|
+
module Connections
|
3
|
+
module Senders
|
4
|
+
def senders(options = {})
|
5
|
+
users = if @_senders_ && options.blank?
|
6
|
+
self.connection(:senders, options.merge(:cached_collection => @_senders_))
|
7
|
+
else
|
8
|
+
self.connection(:senders, options)
|
9
|
+
end
|
10
|
+
users.map! do |user|
|
11
|
+
User.new(user.delete(:id), user.merge(
|
12
|
+
:access_token => options[:access_token] || self.access_token
|
13
|
+
))
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module FbGraph
|
2
|
+
module Connections
|
3
|
+
module Threads
|
4
|
+
def threads(options = {})
|
5
|
+
threads = self.connection(:threads, options)
|
6
|
+
threads.map! do |thread|
|
7
|
+
Thread.new(thread.delete(:id), thread.merge(
|
8
|
+
:access_token => options[:access_token] || self.access_token
|
9
|
+
))
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module FbGraph
|
2
|
+
class Message < Node
|
3
|
+
# TODO:
|
4
|
+
# include Connections::Attachments
|
5
|
+
# include Connections::Shares
|
6
|
+
|
7
|
+
attr_accessor :subject, :message, :from, :to, :tags, :created_time
|
8
|
+
|
9
|
+
def initialize(identifier, attributes = {})
|
10
|
+
super
|
11
|
+
@subject = attributes[:subject]
|
12
|
+
@message = attributes[:message]
|
13
|
+
if (from = attributes[:from])
|
14
|
+
@from = User.new(from.delete(:id), from)
|
15
|
+
end
|
16
|
+
@to = []
|
17
|
+
if attributes[:to]
|
18
|
+
Collection.new(attributes[:to]).each do |to|
|
19
|
+
@to << User.new(to.delete(:id), to)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
@tags = []
|
23
|
+
if attributes[:tags]
|
24
|
+
Collection.new(attributes[:tags]).each do |tag|
|
25
|
+
@tags << Tag.new(tag)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
if attributes[:created_time]
|
29
|
+
@created_time = Time.parse(attributes[:created_time]).utc
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module FbGraph
|
2
|
+
class Thread < Node
|
3
|
+
include Connections::Messages
|
4
|
+
include Connections::Participants
|
5
|
+
include Connections::FormerParticipants
|
6
|
+
include Connections::Senders
|
7
|
+
|
8
|
+
attr_accessor :subject, :snippet, :message_count, :unread_count, :tags, :updated_time
|
9
|
+
|
10
|
+
def initialize(identifier, attributes = {})
|
11
|
+
super
|
12
|
+
@subject = attributes[:subject] # NOTE: Probably obsolete
|
13
|
+
@snippet = attributes[:snippet]
|
14
|
+
@message_count = attributes[:message_count]
|
15
|
+
@unread_count = attributes[:unread_count].to_i
|
16
|
+
@tags = []
|
17
|
+
if attributes[:tags]
|
18
|
+
Collection.new(attributes[:tags]).each do |tag|
|
19
|
+
@tags << Tag.new(tag)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
if attributes[:updated_time]
|
23
|
+
@updated_time = Time.parse(attributes[:updated_time]).utc
|
24
|
+
end
|
25
|
+
|
26
|
+
# cached connection
|
27
|
+
@_messages_ = Collection.new(attributes[:messages])
|
28
|
+
@_participants_ = Collection.new(attributes[:participants])
|
29
|
+
@_former_participants_ = Collection.new(attributes[:former_articipants])
|
30
|
+
@_senders_ = Collection.new(attributes[:senders])
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
data/lib/fb_graph/user.rb
CHANGED
data/lib/fb_graph.rb
CHANGED
@@ -69,6 +69,7 @@ require 'fb_graph/friend_list'
|
|
69
69
|
require 'fb_graph/group'
|
70
70
|
require 'fb_graph/insight'
|
71
71
|
require 'fb_graph/link'
|
72
|
+
require 'fb_graph/message'
|
72
73
|
require 'fb_graph/note'
|
73
74
|
require 'fb_graph/page'
|
74
75
|
require 'fb_graph/photo'
|
@@ -78,6 +79,7 @@ require 'fb_graph/project'
|
|
78
79
|
require 'fb_graph/status'
|
79
80
|
require 'fb_graph/tag'
|
80
81
|
require 'fb_graph/test_user'
|
82
|
+
require 'fb_graph/thread'
|
81
83
|
require 'fb_graph/user'
|
82
84
|
require 'fb_graph/video'
|
83
85
|
|
@@ -0,0 +1,43 @@
|
|
1
|
+
{
|
2
|
+
"data": [
|
3
|
+
{
|
4
|
+
"id": "m_25aaa73097e54594addb418c7bfbd05c",
|
5
|
+
"subject": "test",
|
6
|
+
"created_time": "2011-02-04T15:11:05+0000",
|
7
|
+
"tags": {
|
8
|
+
"data": [
|
9
|
+
{
|
10
|
+
"name": "inbox"
|
11
|
+
},
|
12
|
+
{
|
13
|
+
"name": "source:web"
|
14
|
+
}
|
15
|
+
]
|
16
|
+
},
|
17
|
+
"from": {
|
18
|
+
"name": "Nov Matake",
|
19
|
+
"email": "1575327134\u0040facebook.com",
|
20
|
+
"id": "1575327134"
|
21
|
+
},
|
22
|
+
"to": {
|
23
|
+
"data": [
|
24
|
+
{
|
25
|
+
"name": "Nov Matake",
|
26
|
+
"email": "579612276\u0040facebook.com",
|
27
|
+
"id": "579612276"
|
28
|
+
},
|
29
|
+
{
|
30
|
+
"name": "Nov Matake",
|
31
|
+
"email": "1575327134\u0040facebook.com",
|
32
|
+
"id": "1575327134"
|
33
|
+
}
|
34
|
+
]
|
35
|
+
},
|
36
|
+
"message": "test"
|
37
|
+
}
|
38
|
+
],
|
39
|
+
"paging": {
|
40
|
+
"previous": "https://graph.facebook.com/t_25aaa73097e54594addb418c7bfbd05c/messages?access_token=134145643294322\u00257C456a137963c052c8427dadae-579612276\u00257CY7w4XI3Ocmcg8z2eFW85PP7c8Q8&limit=25&since=2011-02-04T15\u00253A11\u00253A05\u00252B0000",
|
41
|
+
"next": "https://graph.facebook.com/t_25aaa73097e54594addb418c7bfbd05c/messages?access_token=134145643294322\u00257C456a137963c052c8427dadae-579612276\u00257CY7w4XI3Ocmcg8z2eFW85PP7c8Q8&limit=25&until=2011-02-04T15\u00253A11\u00253A04\u00252B0000"
|
42
|
+
}
|
43
|
+
}
|
@@ -0,0 +1,86 @@
|
|
1
|
+
{
|
2
|
+
"data": [{
|
3
|
+
"id": "t_25aaa73097e54594addb418c7bfbd05c",
|
4
|
+
"subject": "test",
|
5
|
+
"snippet": "test",
|
6
|
+
"updated_time": "2011-02-04T15:11:05+0000",
|
7
|
+
"message_count": 1,
|
8
|
+
"unread_count": 1,
|
9
|
+
"tags": {
|
10
|
+
"data": [
|
11
|
+
{
|
12
|
+
"name": "inbox"
|
13
|
+
},
|
14
|
+
{
|
15
|
+
"name": "source:web"
|
16
|
+
}
|
17
|
+
]
|
18
|
+
},
|
19
|
+
"participants": {
|
20
|
+
"data": [
|
21
|
+
{
|
22
|
+
"name": "Nov Matake",
|
23
|
+
"email": "579612276\u0040facebook.com",
|
24
|
+
"id": "579612276"
|
25
|
+
},
|
26
|
+
{
|
27
|
+
"name": "Nov Matake",
|
28
|
+
"email": "1575327134\u0040facebook.com",
|
29
|
+
"id": "1575327134"
|
30
|
+
}
|
31
|
+
]
|
32
|
+
},
|
33
|
+
"senders": {
|
34
|
+
"data": [
|
35
|
+
{
|
36
|
+
"name": "Nov Matake",
|
37
|
+
"email": "1575327134\u0040facebook.com",
|
38
|
+
"id": "1575327134"
|
39
|
+
}
|
40
|
+
]
|
41
|
+
},
|
42
|
+
"messages": {
|
43
|
+
"data": [
|
44
|
+
{
|
45
|
+
"id": "m_25aaa73097e54594addb418c7bfbd05c",
|
46
|
+
"subject": "test",
|
47
|
+
"created_time": "2011-02-04T15:11:05+0000",
|
48
|
+
"tags": {
|
49
|
+
"data": [
|
50
|
+
{
|
51
|
+
"name": "inbox"
|
52
|
+
},
|
53
|
+
{
|
54
|
+
"name": "source:web"
|
55
|
+
}
|
56
|
+
]
|
57
|
+
},
|
58
|
+
"from": {
|
59
|
+
"name": "Nov Matake",
|
60
|
+
"email": "1575327134\u0040facebook.com",
|
61
|
+
"id": "1575327134"
|
62
|
+
},
|
63
|
+
"to": {
|
64
|
+
"data": [
|
65
|
+
{
|
66
|
+
"name": "Nov Matake",
|
67
|
+
"email": "579612276\u0040facebook.com",
|
68
|
+
"id": "579612276"
|
69
|
+
},
|
70
|
+
{
|
71
|
+
"name": "Nov Matake",
|
72
|
+
"email": "1575327134\u0040facebook.com",
|
73
|
+
"id": "1575327134"
|
74
|
+
}
|
75
|
+
]
|
76
|
+
},
|
77
|
+
"message": "test"
|
78
|
+
}
|
79
|
+
],
|
80
|
+
"paging": {
|
81
|
+
"previous": "https://graph.facebook.com/?access_token=134145643294322\u00257C456a137963c052c8427dadae-579612276\u00257CY7w4XI3Ocmcg8z2eFW85PP7c8Q8&limit=25&since=2011-02-04T15\u00253A11\u00253A05\u00252B0000",
|
82
|
+
"next": "https://graph.facebook.com/?access_token=134145643294322\u00257C456a137963c052c8427dadae-579612276\u00257CY7w4XI3Ocmcg8z2eFW85PP7c8Q8&limit=25&until=2011-02-04T15\u00253A11\u00253A04\u00252B0000"
|
83
|
+
}
|
84
|
+
}
|
85
|
+
}]
|
86
|
+
}
|
@@ -5,7 +5,7 @@ describe FbGraph::Connections::AppRequests, '#app_requests' do
|
|
5
5
|
fake_json(:get, 'me/apprequests?access_token=access_token', 'users/app_requests/me_private')
|
6
6
|
end
|
7
7
|
|
8
|
-
it 'should return
|
8
|
+
it 'should return app_requests as FbGraph::AppRequest' do
|
9
9
|
app_requests = FbGraph::User.me('access_token').app_requests
|
10
10
|
app_requests.each do |app_request|
|
11
11
|
app_request.should be_instance_of(FbGraph::AppRequest)
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../spec_helper')
|
2
|
+
|
3
|
+
describe FbGraph::Connections::FormerParticipants, '#former_participants' do
|
4
|
+
before do
|
5
|
+
fake_json(:get, '12345/former_participants?access_token=access_token&no_cache=true', 'thread/former_participants/private')
|
6
|
+
end
|
7
|
+
|
8
|
+
it 'should use cached contents as default' do
|
9
|
+
lambda do
|
10
|
+
FbGraph::Thread.new(12345, :access_token => 'access_token').former_participants
|
11
|
+
end.should_not request_to '12345/former_participants?access_token=access_token'
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'should not use cached contents when options are specified' do
|
15
|
+
lambda do
|
16
|
+
FbGraph::Thread.new(12345).former_participants(:no_cache => true)
|
17
|
+
end.should request_to '12345/former_participants?no_cache=true'
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'should return former_participants as FbGraph::User' do
|
21
|
+
former_participants = FbGraph::Thread.new(12345, :access_token => 'access_token').former_participants(:no_cache => true)
|
22
|
+
former_participants.each do |former_participant|
|
23
|
+
former_participant.should be_instance_of(FbGraph::User)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../spec_helper')
|
2
|
+
|
3
|
+
describe FbGraph::Connections::Messages, '#messages' do
|
4
|
+
before do
|
5
|
+
fake_json(:get, '12345/messages?access_token=access_token&no_cache=true', 'thread/messages/private')
|
6
|
+
end
|
7
|
+
|
8
|
+
it 'should use cached contents as default' do
|
9
|
+
lambda do
|
10
|
+
FbGraph::Thread.new(12345, :access_token => 'access_token').messages
|
11
|
+
end.should_not request_to '12345/messages?access_token=access_token'
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'should not use cached contents when options are specified' do
|
15
|
+
lambda do
|
16
|
+
FbGraph::Thread.new(12345).messages(:no_cache => true)
|
17
|
+
end.should request_to '12345/messages?no_cache=true'
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'should return threads as FbGraph::Message' do
|
21
|
+
messages = FbGraph::Thread.new(12345, :access_token => 'access_token').messages(:no_cache => true)
|
22
|
+
messages.each do |message|
|
23
|
+
message.should be_instance_of(FbGraph::Message)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../spec_helper')
|
2
|
+
|
3
|
+
describe FbGraph::Connections::Participants, '#participants' do
|
4
|
+
before do
|
5
|
+
fake_json(:get, '12345/participants?access_token=access_token&no_cache=true', 'thread/participants/private')
|
6
|
+
end
|
7
|
+
|
8
|
+
it 'should use cached contents as default' do
|
9
|
+
lambda do
|
10
|
+
FbGraph::Thread.new(12345, :access_token => 'access_token').participants
|
11
|
+
end.should_not request_to '12345/participants?access_token=access_token'
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'should not use cached contents when options are specified' do
|
15
|
+
lambda do
|
16
|
+
FbGraph::Thread.new(12345).participants(:no_cache => true)
|
17
|
+
end.should request_to '12345/participants?no_cache=true'
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'should return participants as FbGraph::User' do
|
21
|
+
participants = FbGraph::Thread.new(12345, :access_token => 'access_token').participants(:no_cache => true)
|
22
|
+
participants.each do |participant|
|
23
|
+
participant.should be_instance_of(FbGraph::User)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../spec_helper')
|
2
|
+
|
3
|
+
describe FbGraph::Connections::Senders, '#senders' do
|
4
|
+
before do
|
5
|
+
fake_json(:get, '12345/senders?access_token=access_token&no_cache=true', 'thread/senders/private')
|
6
|
+
end
|
7
|
+
|
8
|
+
it 'should use cached contents as default' do
|
9
|
+
lambda do
|
10
|
+
FbGraph::Thread.new(12345, :access_token => 'access_token').senders
|
11
|
+
end.should_not request_to '12345/senders?access_token=access_token'
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'should not use cached contents when options are specified' do
|
15
|
+
lambda do
|
16
|
+
FbGraph::Thread.new(12345).senders(:no_cache => true)
|
17
|
+
end.should request_to '12345/senders?no_cache=true'
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'should return senders as FbGraph::User' do
|
21
|
+
senders = FbGraph::Thread.new(12345, :access_token => 'access_token').senders(:no_cache => true)
|
22
|
+
senders.each do |sender|
|
23
|
+
sender.should be_instance_of(FbGraph::User)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../spec_helper')
|
2
|
+
|
3
|
+
describe FbGraph::Connections::Threads, '#threads' do
|
4
|
+
before do
|
5
|
+
fake_json(:get, 'me/threads?access_token=access_token', 'users/threads/me_private')
|
6
|
+
end
|
7
|
+
|
8
|
+
it 'should return threads as FbGraph::Thread' do
|
9
|
+
threads = FbGraph::User.me('access_token').threads
|
10
|
+
threads.each do |thread|
|
11
|
+
thread.should be_instance_of(FbGraph::Thread)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../spec_helper')
|
2
|
+
|
3
|
+
describe FbGraph::Message, '.new' do
|
4
|
+
it 'should setup all supported attributes' do
|
5
|
+
attributes = {
|
6
|
+
:id => "12345",
|
7
|
+
:subject => "test",
|
8
|
+
:created_time => "2011-02-04T15:11:05+0000",
|
9
|
+
:tags => {
|
10
|
+
:data => [{
|
11
|
+
:name => "inbox"
|
12
|
+
}, {
|
13
|
+
:name => "source:web"
|
14
|
+
}]
|
15
|
+
},
|
16
|
+
:from => {
|
17
|
+
:name => "Nov Matake",
|
18
|
+
:email => "abc@facebook.com",
|
19
|
+
:id => "1575327134"
|
20
|
+
},
|
21
|
+
:to => {
|
22
|
+
:data => [{
|
23
|
+
:name => "Nov Matake",
|
24
|
+
:email => "xyz@facebook.com",
|
25
|
+
:id => "579612276"
|
26
|
+
}, {
|
27
|
+
:name => "Nov Matake",
|
28
|
+
:email => "abc@facebook.com",
|
29
|
+
:id => "1575327134"
|
30
|
+
}]
|
31
|
+
},
|
32
|
+
:message => "test test"
|
33
|
+
}
|
34
|
+
message = FbGraph::Message.new(attributes.delete(:id), attributes)
|
35
|
+
message.identifier.should == '12345'
|
36
|
+
message.subject.should == 'test'
|
37
|
+
message.message.should == 'test test'
|
38
|
+
message.created_time.should == Time.parse('2011-02-04T15:11:05+0000')
|
39
|
+
message.tags.should == [
|
40
|
+
FbGraph::Tag.new(:name => 'inbox'),
|
41
|
+
FbGraph::Tag.new(:name => 'source:web')
|
42
|
+
]
|
43
|
+
message.from.should == FbGraph::User.new('1575327134', :name => 'Nov Matake', :email => 'abc@facebook.com')
|
44
|
+
message.to.should == [
|
45
|
+
FbGraph::User.new('579612276', :name => 'Nov Matake', :email => 'xyz@facebook.com'),
|
46
|
+
FbGraph::User.new('1575327134', :name => 'Nov Matake', :email => 'abc@facebook.com')
|
47
|
+
]
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,86 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../spec_helper')
|
2
|
+
|
3
|
+
describe FbGraph::Thread, '.new' do
|
4
|
+
it 'should setup all supported attributes' do
|
5
|
+
attributes = {
|
6
|
+
:id => "12345",
|
7
|
+
:snippet => 'test message',
|
8
|
+
:message_count => 2,
|
9
|
+
:unread_count => 1,
|
10
|
+
:updated_time => "2011-02-04T15:11:05+0000",
|
11
|
+
:tags => {
|
12
|
+
:data => [{
|
13
|
+
:name => "inbox"
|
14
|
+
}, {
|
15
|
+
:name => "source:web"
|
16
|
+
}]
|
17
|
+
},
|
18
|
+
:participants => {
|
19
|
+
:data => [{
|
20
|
+
:name => "Nov Matake",
|
21
|
+
:email => "xyz@facebook.com",
|
22
|
+
:id => "579612276"
|
23
|
+
}, {
|
24
|
+
:name => "Nov Matake",
|
25
|
+
:email => "abc@facebook.com",
|
26
|
+
:id => "1575327134"
|
27
|
+
}]
|
28
|
+
},
|
29
|
+
:senders => {
|
30
|
+
:data => [{
|
31
|
+
:name => "Nov Matake",
|
32
|
+
:email => "abc@facebook.com",
|
33
|
+
:id => "1575327134"
|
34
|
+
}]
|
35
|
+
},
|
36
|
+
:messages => {
|
37
|
+
:data => [{
|
38
|
+
:id => "m_25aaa73097e54594addb418c7bfbd05c",
|
39
|
+
:subject => "test",
|
40
|
+
:created_time => "2011-02-04T15:11:05+0000",
|
41
|
+
:tags => {
|
42
|
+
:data => [{
|
43
|
+
:name => "inbox"
|
44
|
+
}, {
|
45
|
+
:name => "source:web"
|
46
|
+
}]
|
47
|
+
},
|
48
|
+
:from => {
|
49
|
+
:name => "Nov Matake",
|
50
|
+
:email => "abc@facebook.com",
|
51
|
+
:id => "1575327134"
|
52
|
+
},
|
53
|
+
:to => {
|
54
|
+
:data => [{
|
55
|
+
:name => "Nov Matake",
|
56
|
+
:email => "xyz@facebook.com",
|
57
|
+
:id => "579612276"
|
58
|
+
}, {
|
59
|
+
:name => "Nov Matake",
|
60
|
+
:email => "abc@facebook.com",
|
61
|
+
:id => "1575327134"
|
62
|
+
}]
|
63
|
+
},
|
64
|
+
:message => "test"
|
65
|
+
}],
|
66
|
+
:paging => {
|
67
|
+
:previous => "https://graph.facebook.com/?access_token=access_token",
|
68
|
+
:next => "https://graph.facebook.com/?access_token=access_token"
|
69
|
+
}
|
70
|
+
}
|
71
|
+
}
|
72
|
+
thread = FbGraph::Thread.new(attributes.delete(:id), attributes)
|
73
|
+
thread.identifier.should == '12345'
|
74
|
+
thread.snippet.should == 'test message'
|
75
|
+
thread.message_count.should == 2
|
76
|
+
thread.unread_count.should == 1
|
77
|
+
thread.updated_time.should == Time.parse('2011-02-04T15:11:05+0000')
|
78
|
+
thread.tags.should == [
|
79
|
+
FbGraph::Tag.new(:name => 'inbox'),
|
80
|
+
FbGraph::Tag.new(:name => 'source:web')
|
81
|
+
]
|
82
|
+
thread.senders.should == [
|
83
|
+
FbGraph::User.new('1575327134', :name => 'Nov Matake', :email => 'abc@facebook.com')
|
84
|
+
]
|
85
|
+
end
|
86
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'spec_helper')
|
2
|
+
|
3
|
+
describe RestClient do
|
4
|
+
before do
|
5
|
+
module RestClient
|
6
|
+
class Request
|
7
|
+
def self.execute(options = {})
|
8
|
+
if options[:verify_ssl] == OpenSSL::SSL::VERIFY_PEER
|
9
|
+
:secure
|
10
|
+
else
|
11
|
+
:insecure
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'should support SSL' do
|
19
|
+
[:get, :post, :put, :delete].each do |method|
|
20
|
+
RestClient.send(method, 'https://example.com', {}).should == :secure
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|