disqussion 0.0.1

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.
Files changed (83) hide show
  1. data/.gitignore +9 -0
  2. data/Gemfile +3 -0
  3. data/Gemfile.lock +80 -0
  4. data/HISTORY.mkd +5 -0
  5. data/LICENSE.mkd +20 -0
  6. data/README.mkd +139 -0
  7. data/Rakefile +23 -0
  8. data/disqussion.gemspec +37 -0
  9. data/lib/disqussion/api.rb +21 -0
  10. data/lib/disqussion/client/.DS_Store +0 -0
  11. data/lib/disqussion/client/applications.rb +20 -0
  12. data/lib/disqussion/client/blacklists.rb +4 -0
  13. data/lib/disqussion/client/categories.rb +4 -0
  14. data/lib/disqussion/client/exports.rb +4 -0
  15. data/lib/disqussion/client/forums.rb +122 -0
  16. data/lib/disqussion/client/imports.rb +4 -0
  17. data/lib/disqussion/client/posts.rb +217 -0
  18. data/lib/disqussion/client/reactions.rb +79 -0
  19. data/lib/disqussion/client/reports.rb +4 -0
  20. data/lib/disqussion/client/threads.rb +199 -0
  21. data/lib/disqussion/client/trends.rb +23 -0
  22. data/lib/disqussion/client/users.rb +103 -0
  23. data/lib/disqussion/client/utils.rb +90 -0
  24. data/lib/disqussion/client/whitelists.rb +4 -0
  25. data/lib/disqussion/client.rb +46 -0
  26. data/lib/disqussion/configuration.rb +121 -0
  27. data/lib/disqussion/connection.rb +36 -0
  28. data/lib/disqussion/error.rb +51 -0
  29. data/lib/disqussion/request.rb +38 -0
  30. data/lib/disqussion/version.rb +3 -0
  31. data/lib/disqussion/view_helpers.rb +9 -0
  32. data/lib/disqussion/widget.rb +183 -0
  33. data/lib/disqussion.rb +25 -0
  34. data/lib/faraday/response/raise_http_4xx.rb +41 -0
  35. data/lib/faraday/response/raise_http_5xx.rb +20 -0
  36. data/spec/disqussion/api_spec.rb +63 -0
  37. data/spec/disqussion/client/.DS_Store +0 -0
  38. data/spec/disqussion/client/applications_spec.rb +24 -0
  39. data/spec/disqussion/client/forums_spec.rb +80 -0
  40. data/spec/disqussion/client/posts_spec.rb +154 -0
  41. data/spec/disqussion/client/reactions_spec.rb +63 -0
  42. data/spec/disqussion/client/threads_spec.rb +128 -0
  43. data/spec/disqussion/client/trends_spec.rb +24 -0
  44. data/spec/disqussion/client/users_spec.rb +33 -0
  45. data/spec/disqussion/client_spec.rb +15 -0
  46. data/spec/disqussion_spec.rb +101 -0
  47. data/spec/faraday/response_spec.rb +30 -0
  48. data/spec/fixtures/applications/listUsage.json +129 -0
  49. data/spec/fixtures/forums/create.json +12 -0
  50. data/spec/fixtures/forums/details.json +12 -0
  51. data/spec/fixtures/forums/listCategories.json +21 -0
  52. data/spec/fixtures/forums/listPosts.json +859 -0
  53. data/spec/fixtures/forums/listThreads.json +533 -0
  54. data/spec/fixtures/posts/approve.json +6 -0
  55. data/spec/fixtures/posts/create.json +6 -0
  56. data/spec/fixtures/posts/details.json +35 -0
  57. data/spec/fixtures/posts/highlight.json +6 -0
  58. data/spec/fixtures/posts/list.json +247 -0
  59. data/spec/fixtures/posts/remove.json +6 -0
  60. data/spec/fixtures/posts/report.json +6 -0
  61. data/spec/fixtures/posts/restore.json +6 -0
  62. data/spec/fixtures/posts/spam.json +6 -0
  63. data/spec/fixtures/posts/unhighlight.json +6 -0
  64. data/spec/fixtures/posts/vote.json +6 -0
  65. data/spec/fixtures/reactions/domains.json +4 -0
  66. data/spec/fixtures/reactions/ips.json +131 -0
  67. data/spec/fixtures/reactions/threads.json +4 -0
  68. data/spec/fixtures/reactions/users.json +124 -0
  69. data/spec/fixtures/threads/close.json +4 -0
  70. data/spec/fixtures/threads/create.json +22 -0
  71. data/spec/fixtures/threads/details.json +24 -0
  72. data/spec/fixtures/threads/list.json +531 -0
  73. data/spec/fixtures/threads/listMostLiked.json +530 -0
  74. data/spec/fixtures/threads/listPosts.json +87 -0
  75. data/spec/fixtures/threads/open.json +8 -0
  76. data/spec/fixtures/threads/remove.json +4 -0
  77. data/spec/fixtures/threads/restore.json +4 -0
  78. data/spec/fixtures/threads/vote.json +4 -0
  79. data/spec/fixtures/trends/listTreads.json +283 -0
  80. data/spec/fixtures/users/details.json +19 -0
  81. data/spec/fixtures/users/follow.json +4 -0
  82. data/spec/helper.rb +47 -0
  83. metadata +348 -0
@@ -0,0 +1,63 @@
1
+ require 'helper'
2
+
3
+ describe Disqussion::API do
4
+ before do
5
+ @keys = Disqussion::Configuration::VALID_OPTIONS_KEYS
6
+ end
7
+
8
+ context "with module configuration" do
9
+ before do
10
+ Disqussion.configure do |config|
11
+ @keys.each do |key|
12
+ config.send("#{key}=", key)
13
+ end
14
+ end
15
+ end
16
+
17
+ after do
18
+ Disqussion.reset
19
+ end
20
+
21
+ it "should inherit module configuration" do
22
+ api = Disqussion::API.new
23
+ @keys.each do |key|
24
+ api.send(key).should == key
25
+ end
26
+ end
27
+
28
+ context "with class configuration" do
29
+ before do
30
+ @configuration = {
31
+ :api_key => 'key',
32
+ :api_secret => 'secret',
33
+ :adapter => :typhoeus,
34
+ :endpoint => 'http://disqus.com/api',
35
+ :format => :json,
36
+ :proxy => 'http://the88:bar@proxy.example.com:8080',
37
+ :user_agent => 'Custom User Agent',
38
+ }
39
+ end
40
+
41
+ context "during initialization" do
42
+ it "should override module configuration" do
43
+ api = Disqussion::API.new(@configuration)
44
+ @keys.each do |key|
45
+ api.send(key).should == @configuration[key] if @configuration[key]
46
+ end
47
+ end
48
+ end
49
+
50
+ context "after initilization" do
51
+ it "should override module configuration after initialization" do
52
+ api = Disqussion::API.new
53
+ @configuration.each do |key, value|
54
+ api.send("#{key}=", value)
55
+ end
56
+ @keys.each do |key|
57
+ api.send(key).should == @configuration[key] if @configuration[key]
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
Binary file
@@ -0,0 +1,24 @@
1
+ require 'helper'
2
+
3
+ describe Disqussion::Applications do
4
+ Disqussion::Configuration::VALID_FORMATS.each do |format|
5
+ context ".new(:format => '#{format}')" do
6
+ before do
7
+ @client = Disqussion::Client.applications
8
+ end
9
+
10
+ context "listUsage" do
11
+ before do
12
+ stub_get("applications/listUsage.json").
13
+ to_return(:body => fixture("applications/listUsage.json"), :headers => {:content_type => "application/json; charset=utf-8"})
14
+ end
15
+
16
+ it "returns the API usage per day for this application." do
17
+ @client.listUsage
18
+ a_get("applications/listUsage.json").should have_been_made
19
+ end
20
+ end
21
+
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,80 @@
1
+ require 'helper'
2
+
3
+ describe Disqussion::Forums do
4
+ Disqussion::Configuration::VALID_FORMATS.each do |format|
5
+ context ".new(:format => '#{format}')" do
6
+ before do
7
+ @client = Disqussion::Client.forums
8
+ end
9
+
10
+ describe ".create" do
11
+ before do
12
+ stub_get("forums/create.json", :query => { :website => "the88", :name => "My Forum", :short_name => "myforum" }).
13
+ to_return(:body => fixture("forums/create.json"), :headers => {:content_type => "application/json; charset=utf-8"})
14
+ end
15
+
16
+ it "returns new forum infos." do
17
+ @client.create("the88", "My Forum", "myforum")
18
+ a_get("forums/create.json", :query => { :website => "the88", :name => "My Forum", :short_name => "myforum" }).
19
+ should have_been_made
20
+ end
21
+ end
22
+
23
+ describe ".details" do
24
+ before do
25
+ stub_get("forums/details.json", :query => { :forum => "the88" }).
26
+ to_return(:body => fixture("forums/details.json"), :headers => {:content_type => "application/json; charset=utf-8"})
27
+ end
28
+
29
+ it "returns details on the requested forum." do
30
+ @client.details("the88")
31
+ a_get("forums/details.json", :query => { :forum => "the88" }).
32
+ should have_been_made
33
+ end
34
+ end
35
+
36
+ describe ".listPosts" do
37
+ before do
38
+ stub_get("forums/listPosts.json", :query => { :forum => "the88" }).
39
+ to_return(:body => fixture("forums/listPosts.json"), :headers => {:content_type => "application/json; charset=utf-8"})
40
+ end
41
+
42
+ it "returns details on the requested list of posts." do
43
+ @client.listPosts("the88")
44
+ a_get("forums/listPosts.json", :query => { :forum => "the88" }).
45
+ should have_been_made
46
+ end
47
+ end
48
+
49
+ describe ".listCategories" do
50
+ before do
51
+ stub_get("forums/listCategories.json", :query => { :forum => "the88" }).
52
+ to_return(:body => fixture("forums/listCategories.json"), :headers => {:content_type => "application/json; charset=utf-8"})
53
+ end
54
+
55
+ it "returns details on the requested list of categories." do
56
+ @client.listCategories("the88")
57
+ a_get("forums/listCategories.json", :query => { :forum => "the88" }).
58
+ should have_been_made
59
+ end
60
+ end
61
+
62
+ describe ".listMostLikedUsers" do
63
+ pending
64
+ end
65
+
66
+ describe ".listThreads" do
67
+ before do
68
+ stub_get("forums/listThreads.json", :query => { :forum => "the88" }).
69
+ to_return(:body => fixture("forums/listThreads.json"), :headers => {:content_type => "application/json; charset=utf-8"})
70
+ end
71
+
72
+ it "returns details on the requested list of threads." do
73
+ @client.listThreads("the88")
74
+ a_get("forums/listThreads.json", :query => { :forum => "the88" }).
75
+ should have_been_made
76
+ end
77
+ end
78
+ end
79
+ end
80
+ end
@@ -0,0 +1,154 @@
1
+ require 'helper'
2
+
3
+ describe Disqussion::Posts do
4
+ Disqussion::Configuration::VALID_FORMATS.each do |format|
5
+ context ".new(:format => '#{format}')" do
6
+ before do
7
+ @client = Disqussion::Client.posts
8
+ end
9
+
10
+ describe ".approve" do
11
+ before do
12
+ stub_post("posts/approve.json", :body => { :post => "199088808" }).
13
+ to_return(:body => fixture("posts/approve.json"), :headers => {:content_type => "application/json; charset=utf-8"})
14
+ end
15
+
16
+ it "approves a post." do
17
+ @client.approve(199088808)
18
+ a_post("posts/approve.json", :body => { :post => "199088808" }).
19
+ should have_been_made
20
+ end
21
+ end
22
+
23
+ describe ".create" do
24
+ before do
25
+ stub_post("posts/create.json", :body => { :message => "Nice post!" }).
26
+ to_return(:body => fixture("posts/create.json"), :headers => {:content_type => "application/json; charset=utf-8"})
27
+ end
28
+
29
+ it "create a post." do
30
+ @client.create("Nice post!")
31
+ a_post("posts/create.json", :body => { :message => "Nice post!" }).
32
+ should have_been_made
33
+ end
34
+ end
35
+
36
+ describe ".details" do
37
+ before do
38
+ stub_get("posts/details.json", :query => { :post => "199088808" }).
39
+ to_return(:body => fixture("posts/details.json"), :headers => {:content_type => "application/json; charset=utf-8"})
40
+ end
41
+
42
+ it "returns details on the requested post." do
43
+ @client.details(199088808)
44
+ a_get("posts/details.json", :query => { :post => "199088808" }).
45
+ should have_been_made
46
+ end
47
+ end
48
+
49
+ describe ".highlight" do
50
+ before do
51
+ stub_post("posts/highlight.json", :body => { :post => "199088808" }).
52
+ to_return(:body => fixture("posts/highlight.json"), :headers => {:content_type => "application/json; charset=utf-8"})
53
+ end
54
+
55
+ it "returns id of the highlighted post." do
56
+ @client.highlight(199088808)
57
+ a_post("posts/highlight.json", :body => { :post => "199088808" }).
58
+ should have_been_made
59
+ end
60
+ end
61
+
62
+ describe ".list" do
63
+ before do
64
+ stub_get("posts/list.json", :query => { :thread => "293757871" }).
65
+ to_return(:body => fixture("posts/list.json"), :headers => {:content_type => "application/json; charset=utf-8"})
66
+ end
67
+
68
+ it "returns a list of posts for thread '293757871' ordered by the date created." do
69
+ @client.list(:thread => 293757871)
70
+ a_get("posts/list.json", :query => { :thread => "293757871" }).
71
+ should have_been_made
72
+ end
73
+ end
74
+
75
+ describe ".remove" do
76
+ before do
77
+ stub_post("posts/remove.json", :body => { :post => "199088808" }).
78
+ to_return(:body => fixture("posts/remove.json"), :headers => {:content_type => "application/json; charset=utf-8"})
79
+ end
80
+
81
+ it "returns id of the removed post." do
82
+ @client.remove(199088808)
83
+ a_post("posts/remove.json", :body => { :post => "199088808" }).
84
+ should have_been_made
85
+ end
86
+ end
87
+
88
+ describe ".report" do
89
+ before do
90
+ stub_post("posts/report.json", :body => { :post => "199088808" }).
91
+ to_return(:body => fixture("posts/report.json"), :headers => {:content_type => "application/json; charset=utf-8"})
92
+ end
93
+
94
+ it "returns id of the removed post." do
95
+ @client.report(199088808)
96
+ a_post("posts/report.json", :body => { :post => "199088808" }).
97
+ should have_been_made
98
+ end
99
+ end
100
+
101
+ describe ".restore" do
102
+ before do
103
+ stub_post("posts/restore.json", :body => { :post => "199088808" }).
104
+ to_return(:body => fixture("posts/restore.json"), :headers => {:content_type => "application/json; charset=utf-8"})
105
+ end
106
+
107
+ it "returns id of the restored post." do
108
+ @client.restore(199088808)
109
+ a_post("posts/restore.json", :body => { :post => "199088808" }).
110
+ should have_been_made
111
+ end
112
+ end
113
+
114
+ describe ".spam" do
115
+ before do
116
+ stub_post("posts/spam.json", :body => { :post => "199088808" }).
117
+ to_return(:body => fixture("posts/spam.json"), :headers => {:content_type => "application/json; charset=utf-8"})
118
+ end
119
+
120
+ it "returns id of post marked as spam." do
121
+ @client.spam(199088808)
122
+ a_post("posts/spam.json", :body => { :post => "199088808" }).
123
+ should have_been_made
124
+ end
125
+ end
126
+
127
+ describe ".unhighlight" do
128
+ before do
129
+ stub_post("posts/unhighlight.json", :body => { :post => "199088808" }).
130
+ to_return(:body => fixture("posts/unhighlight.json"), :headers => {:content_type => "application/json; charset=utf-8"})
131
+ end
132
+
133
+ it "returns id of post unhighlighted." do
134
+ @client.unhighlight(199088808)
135
+ a_post("posts/unhighlight.json", :body => { :post => "199088808" }).
136
+ should have_been_made
137
+ end
138
+ end
139
+
140
+ describe ".vote" do
141
+ before do
142
+ stub_post("posts/vote.json", :body => { :vote => "1", :post => "199088808" }).
143
+ to_return(:body => fixture("posts/vote.json"), :headers => {:content_type => "application/json; charset=utf-8"})
144
+ end
145
+
146
+ it "returns id of post." do
147
+ @client.vote(1, 199088808)
148
+ a_post("posts/vote.json", :body => { :vote => "1", :post => "199088808" }).
149
+ should have_been_made
150
+ end
151
+ end
152
+ end
153
+ end
154
+ end
@@ -0,0 +1,63 @@
1
+ require 'helper'
2
+
3
+ describe Disqussion::Reactions do
4
+ Disqussion::Configuration::VALID_FORMATS.each do |format|
5
+ context ".new(:format => '#{format}')" do
6
+ before do
7
+ @client = Disqussion::Client.reactions
8
+ end
9
+
10
+ describe ".domains" do
11
+ before do
12
+ stub_get("reactions/domains.json", :query => { }).
13
+ to_return(:body => fixture("reactions/domains.json"), :headers => {:content_type => "application/json; charset=utf-8"})
14
+ end
15
+
16
+ it "returns ???" do
17
+ @client.domains
18
+ a_get("reactions/domains.json", :query => { }).
19
+ should have_been_made
20
+ end
21
+ end
22
+
23
+ describe ".ips" do
24
+ before do
25
+ stub_get("reactions/ips.json", :query => { }).
26
+ to_return(:body => fixture("reactions/ips.json"), :headers => {:content_type => "application/json; charset=utf-8"})
27
+ end
28
+
29
+ it "returns ???" do
30
+ @client.ips
31
+ a_get("reactions/ips.json", :query => { }).
32
+ should have_been_made
33
+ end
34
+ end
35
+
36
+ describe ".threads" do
37
+ before do
38
+ stub_get("reactions/threads.json", :query => { }).
39
+ to_return(:body => fixture("reactions/threads.json"), :headers => {:content_type => "application/json; charset=utf-8"})
40
+ end
41
+
42
+ it "returns ???" do
43
+ @client.threads
44
+ a_get("reactions/threads.json", :query => { }).
45
+ should have_been_made
46
+ end
47
+ end
48
+
49
+ describe ".users" do
50
+ before do
51
+ stub_get("reactions/users.json", :query => { }).
52
+ to_return(:body => fixture("reactions/users.json"), :headers => {:content_type => "application/json; charset=utf-8"})
53
+ end
54
+
55
+ it "returns ???" do
56
+ @client.users
57
+ a_get("reactions/users.json", :query => { }).
58
+ should have_been_made
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,128 @@
1
+ require 'helper'
2
+
3
+ describe Disqussion::Threads do
4
+ Disqussion::Configuration::VALID_FORMATS.each do |format|
5
+ context ".new(:format => '#{format}')" do
6
+ before do
7
+ @client = Disqussion::Client.threads
8
+ end
9
+
10
+ describe ".close" do
11
+ before do
12
+ stub_post("threads/close.json", :body => { :thread => "mythread" }).
13
+ to_return(:body => fixture("threads/close.json"), :headers => {:content_type => "application/json; charset=utf-8"})
14
+ end
15
+
16
+ it "returns code 0 response." do
17
+ @client.close("mythread")
18
+ a_post("threads/close.json", :body => { :thread => "mythread" }).
19
+ should have_been_made
20
+ end
21
+ end
22
+
23
+ describe ".details" do
24
+ before do
25
+ stub_get("threads/details.json", :query => { :thread => "mythread" }).
26
+ to_return(:body => fixture("threads/details.json"), :headers => {:content_type => "application/json; charset=utf-8"})
27
+ end
28
+
29
+ it "returns thread details." do
30
+ @client.details("mythread")
31
+ a_get("threads/details.json", :query => { :thread => "mythread" }).
32
+ should have_been_made
33
+ end
34
+ end
35
+
36
+ describe ".list" do
37
+ before do
38
+ stub_get("threads/list.json", :query => { :forum => "the88" }).
39
+ to_return(:body => fixture("threads/list.json"), :headers => {:content_type => "application/json; charset=utf-8"})
40
+ end
41
+
42
+ it "returns a list of threads sorted by the date created." do
43
+ @client.list(:forum => "the88")
44
+ a_get("threads/list.json", :query => { :forum => "the88" }).
45
+ should have_been_made
46
+ end
47
+ end
48
+
49
+ describe ".listMostLiked" do
50
+ before do
51
+ stub_get("threads/listMostLiked.json", :query => { :forum => "the88" }).
52
+ to_return(:body => fixture("threads/listMostLiked.json"), :headers => {:content_type => "application/json; charset=utf-8"})
53
+ end
54
+
55
+ it "returns a list of threads sorted by number of likes." do
56
+ @client.listMostLiked(:forum => "the88")
57
+ a_get("threads/listMostLiked.json", :query => { :forum => "the88" }).
58
+ should have_been_made
59
+ end
60
+ end
61
+
62
+ describe ".listPosts" do
63
+ before do
64
+ stub_get("threads/listPosts.json", :query => { :thread => "mythread" }).
65
+ to_return(:body => fixture("threads/listPosts.json"), :headers => {:content_type => "application/json; charset=utf-8"})
66
+ end
67
+
68
+ it "returns a list of threads sorted by number of likes." do
69
+ @client.listPosts("mythread")
70
+ a_get("threads/listPosts.json", :query => { :thread => "mythread" }).
71
+ should have_been_made
72
+ end
73
+ end
74
+
75
+ describe ".open" do
76
+ before do
77
+ stub_post("threads/open.json", :body => { :thread => "12345678" }).
78
+ to_return(:body => fixture("threads/open.json"), :headers => {:content_type => "application/json; charset=utf-8"})
79
+ end
80
+
81
+ it "returns code 0 response." do
82
+ @client.open(12345678)
83
+ a_post("threads/open.json", :body => { :thread => "12345678" }).
84
+ should have_been_made
85
+ end
86
+ end
87
+
88
+ describe ".remove" do
89
+ before do
90
+ stub_post("threads/remove.json", :body => { :thread => "12345678" }).
91
+ to_return(:body => fixture("threads/remove.json"), :headers => {:content_type => "application/json; charset=utf-8"})
92
+ end
93
+
94
+ it "returns code 0 response." do
95
+ @client.remove(12345678)
96
+ a_post("threads/remove.json", :body => { :thread => "12345678" }).
97
+ should have_been_made
98
+ end
99
+ end
100
+
101
+ describe ".restore" do
102
+ before do
103
+ stub_post("threads/restore.json", :body => { :thread => "12345678" }).
104
+ to_return(:body => fixture("threads/restore.json"), :headers => {:content_type => "application/json; charset=utf-8"})
105
+ end
106
+
107
+ it "returns code 0 response." do
108
+ @client.restore(12345678)
109
+ a_post("threads/restore.json", :body => { :thread => "12345678" }).
110
+ should have_been_made
111
+ end
112
+ end
113
+
114
+ describe ".vote" do
115
+ before do
116
+ stub_post("threads/vote.json", :body => { :vote => "1", :thread => "12345678" }).
117
+ to_return(:body => fixture("threads/vote.json"), :headers => {:content_type => "application/json; charset=utf-8"})
118
+ end
119
+
120
+ it "returns code 0 response." do
121
+ @client.vote(1, 12345678)
122
+ a_post("threads/vote.json", :body => { :vote => "1", :thread => "12345678" }).
123
+ should have_been_made
124
+ end
125
+ end
126
+ end
127
+ end
128
+ end
@@ -0,0 +1,24 @@
1
+ require 'helper'
2
+
3
+ describe Disqussion::Trends do
4
+ Disqussion::Configuration::VALID_FORMATS.each do |format|
5
+ context ".new(:format => '#{format}')" do
6
+ before do
7
+ @client = Disqussion::Client.trends
8
+ end
9
+
10
+ describe ".listTreads" do
11
+ before do
12
+ stub_get("trends/listTreads.json", :query => { }).
13
+ to_return(:body => fixture("trends/listTreads.json"), :headers => {:content_type => "application/json; charset=utf-8"})
14
+ end
15
+
16
+ it "returns the list of trending threads." do
17
+ @client.listTreads
18
+ a_get("trends/listTreads.json", :query => { }).
19
+ should have_been_made
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,33 @@
1
+ require 'helper'
2
+
3
+ describe Disqussion::Users do
4
+ Disqussion::Configuration::VALID_FORMATS.each do |format|
5
+ context ".new(:format => '#{format}')" do
6
+ before do
7
+ @client = Disqussion::Client.users
8
+ end
9
+
10
+ describe ".details" do
11
+ it "get the correct resource" do
12
+ stub_get("users/details.json").
13
+ to_return(:body => fixture("users/details.json"), :headers => {:content_type => "application/json; charset=utf-8"})
14
+
15
+ @client.details
16
+
17
+ a_get("users/details.json").should have_been_made
18
+ end
19
+ end
20
+
21
+ describe ".follow" do
22
+ it "get the correct resource" do
23
+ stub_post("users/follow.json", :body => { :target => "12345678" }).
24
+ to_return(:body => fixture("users/follow.json"), :headers => {:content_type => "application/json; charset=utf-8"})
25
+
26
+ @client.follow(12345678)
27
+
28
+ a_post("users/follow.json", :body => { :target => "12345678"}).should have_been_made
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,15 @@
1
+ require 'helper'
2
+
3
+ describe Disqussion::Client do
4
+ context ".new" do
5
+ before do
6
+ @client = Disqussion::Client.new
7
+ end
8
+
9
+ it "connect using the endpoint configuration" do
10
+ endpoint = URI.parse(@client.api_endpoint)
11
+ connection = @client.send(:connection).build_url(nil).to_s
12
+ connection.should == endpoint.to_s
13
+ end
14
+ end
15
+ end