github_api 0.4.11 → 0.5.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (109) hide show
  1. data/README.md +76 -72
  2. data/features/cassettes/gists/starred.yml +48 -0
  3. data/features/cassettes/pagination/repos/commits/list.yml +193 -0
  4. data/features/cassettes/pagination/repos/commits/next.yml +183 -0
  5. data/features/cassettes/pagination/repos/diff/next.yml +45 -0
  6. data/features/cassettes/pagination/repos/list.yml +176 -0
  7. data/features/cassettes/pagination/repos/list/next.yml +222 -0
  8. data/features/cassettes/pagination/repos/per_page/each_page.yml +45 -0
  9. data/features/cassettes/repos/list.yml +92 -0
  10. data/features/error_codes.feature +1 -1
  11. data/features/gists.feature +12 -3
  12. data/features/gists/comments.feature +3 -3
  13. data/features/github_api.feature +13 -2
  14. data/features/pagination.feature +40 -39
  15. data/features/repos.feature +2 -2
  16. data/features/step_definitions/common_steps.rb +12 -0
  17. data/features/step_definitions/github_api_steps.rb +12 -1
  18. data/lib/github_api.rb +1 -1
  19. data/lib/github_api/api.rb +4 -2
  20. data/lib/github_api/api_factory.rb +11 -5
  21. data/lib/github_api/authorizations.rb +23 -32
  22. data/lib/github_api/client.rb +1 -0
  23. data/lib/github_api/events.rb +38 -38
  24. data/lib/github_api/filter.rb +1 -1
  25. data/lib/github_api/gists.rb +47 -42
  26. data/lib/github_api/gists/comments.rb +77 -84
  27. data/lib/github_api/git_data.rb +25 -6
  28. data/lib/github_api/git_data/blobs.rb +48 -45
  29. data/lib/github_api/git_data/commits.rb +76 -73
  30. data/lib/github_api/git_data/references.rb +137 -118
  31. data/lib/github_api/git_data/tags.rb +74 -70
  32. data/lib/github_api/git_data/trees.rb +88 -85
  33. data/lib/github_api/issues.rb +43 -31
  34. data/lib/github_api/issues/comments.rb +116 -119
  35. data/lib/github_api/issues/events.rb +20 -19
  36. data/lib/github_api/issues/labels.rb +200 -197
  37. data/lib/github_api/issues/milestones.rb +137 -134
  38. data/lib/github_api/orgs.rb +27 -23
  39. data/lib/github_api/orgs/members.rb +105 -108
  40. data/lib/github_api/orgs/teams.rb +236 -237
  41. data/lib/github_api/paged_request.rb +1 -1
  42. data/lib/github_api/pull_requests.rb +40 -42
  43. data/lib/github_api/pull_requests/comments.rb +140 -143
  44. data/lib/github_api/repos.rb +101 -67
  45. data/lib/github_api/repos/collaborators.rb +64 -68
  46. data/lib/github_api/repos/commits.rb +50 -39
  47. data/lib/github_api/repos/downloads.rb +107 -110
  48. data/lib/github_api/repos/forks.rb +38 -39
  49. data/lib/github_api/repos/hooks.rb +161 -167
  50. data/lib/github_api/repos/keys.rb +86 -86
  51. data/lib/github_api/repos/pub_sub_hubbub.rb +99 -87
  52. data/lib/github_api/repos/watching.rb +80 -82
  53. data/lib/github_api/request.rb +5 -9
  54. data/lib/github_api/users.rb +26 -16
  55. data/lib/github_api/users/emails.rb +47 -47
  56. data/lib/github_api/users/followers.rb +85 -86
  57. data/lib/github_api/users/keys.rb +73 -75
  58. data/lib/github_api/validations.rb +25 -0
  59. data/lib/github_api/validations/format.rb +23 -0
  60. data/lib/github_api/validations/presence.rb +25 -0
  61. data/lib/github_api/validations/required.rb +21 -0
  62. data/lib/github_api/validations/token.rb +41 -0
  63. data/lib/github_api/version.rb +3 -3
  64. data/spec/fixtures/repos/commit_comparison.json +112 -0
  65. data/spec/github/api_factory_spec.rb +17 -1
  66. data/spec/github/authorizations_spec.rb +36 -34
  67. data/spec/github/gists/comments_spec.rb +39 -45
  68. data/spec/github/gists_spec.rb +50 -53
  69. data/spec/github/git_data/blobs_spec.rb +27 -20
  70. data/spec/github/git_data/commits_spec.rb +20 -19
  71. data/spec/github/git_data/references_spec.rb +83 -46
  72. data/spec/github/git_data/tags_spec.rb +16 -15
  73. data/spec/github/git_data/trees_spec.rb +20 -19
  74. data/spec/github/git_data_spec.rb +10 -1
  75. data/spec/github/issues/comments_spec.rb +78 -68
  76. data/spec/github/issues/events_spec.rb +42 -34
  77. data/spec/github/issues/labels_spec.rb +89 -101
  78. data/spec/github/issues/milestones_spec.rb +76 -54
  79. data/spec/github/issues_spec.rb +53 -57
  80. data/spec/github/orgs/members_spec.rb +64 -49
  81. data/spec/github/orgs/teams_spec.rb +112 -101
  82. data/spec/github/orgs_spec.rb +41 -31
  83. data/spec/github/paged_request_spec.rb +6 -5
  84. data/spec/github/pull_requests/comments_spec.rb +39 -44
  85. data/spec/github/pull_requests_spec.rb +32 -48
  86. data/spec/github/repos/collaborators_spec.rb +40 -29
  87. data/spec/github/repos/commits_spec.rb +108 -64
  88. data/spec/github/repos/downloads_spec.rb +46 -45
  89. data/spec/github/repos/forks_spec.rb +23 -24
  90. data/spec/github/repos/hooks_spec.rb +69 -71
  91. data/spec/github/repos/keys_spec.rb +39 -34
  92. data/spec/github/repos/pub_sub_hubbub_spec.rb +4 -4
  93. data/spec/github/repos/watching_spec.rb +31 -33
  94. data/spec/github/repos_spec.rb +74 -83
  95. data/spec/github/request_spec.rb +31 -2
  96. data/spec/github/users/emails_spec.rb +19 -17
  97. data/spec/github/users/followers_spec.rb +30 -28
  98. data/spec/github/users/keys_spec.rb +37 -33
  99. data/spec/github/users_spec.rb +124 -125
  100. data/spec/github/validations/format_spec.rb +42 -0
  101. data/spec/github/validations/presence_spec.rb +18 -0
  102. data/spec/github/validations/required_spec.rb +28 -0
  103. data/spec/github/validations/token_spec.rb +19 -0
  104. data/spec/github/validations_spec.rb +23 -0
  105. metadata +33 -10
  106. data/features/cassettes/pagination/repos.yml +0 -177
  107. data/features/cassettes/pagination/repos/next.yml +0 -177
  108. data/lib/github_api/validation.rb +0 -53
  109. data/spec/github/validation_spec.rb +0 -62
@@ -5,123 +5,131 @@ describe Github::Orgs::Members do
5
5
  let(:member) { 'peter-murach' }
6
6
  let(:org) { 'github' }
7
7
 
8
- after { github.user, github.repo, github.oauth_token = nil, nil, nil }
8
+ after { reset_authentication_for github }
9
+
10
+ describe "#list" do
11
+ it { github.orgs.members.should respond_to :all }
9
12
 
10
- describe "members" do
11
13
  context "resource found" do
12
14
  before do
13
15
  stub_get("/orgs/#{org}/members").
14
- to_return(:body => fixture('orgs/members.json'), :status => 200, :headers => {:content_type => "application/json; charset=utf-8"})
16
+ to_return(:body => fixture('orgs/members.json'), :status => 200,
17
+ :headers => {:content_type => "application/json; charset=utf-8"})
15
18
  end
16
19
 
17
20
  it "should fail to get resource without org name" do
18
- expect { github.orgs.members }.to raise_error(ArgumentError)
21
+ expect { github.orgs.members.list nil }.to raise_error(ArgumentError)
19
22
  end
20
23
 
21
24
  it "should get the resources" do
22
- github.orgs.members org
25
+ github.orgs.members.list org
23
26
  a_get("/orgs/#{org}/members").should have_been_made
24
27
  end
25
28
 
26
29
  it "should return array of resources" do
27
- members = github.orgs.members org
30
+ members = github.orgs.members.list org
28
31
  members.should be_an Array
29
32
  members.should have(1).items
30
33
  end
31
34
 
32
35
  it "should be a mash type" do
33
- members = github.orgs.members org
36
+ members = github.orgs.members.list org
34
37
  members.first.should be_a Hashie::Mash
35
38
  end
36
39
 
37
40
  it "should get members information" do
38
- members = github.orgs.members org
41
+ members = github.orgs.members.list org
39
42
  members.first.login.should == 'octocat'
40
43
  end
41
44
 
42
45
  it "should yield to a block" do
43
- github.orgs.should_receive(:members).with(org).and_yield('web')
44
- github.orgs.members(org) { |param| 'web' }
46
+ github.orgs.members.should_receive(:list).with(org).and_yield('web')
47
+ github.orgs.members.list(org) { |param| 'web' }
45
48
  end
46
49
  end
47
50
 
48
51
  context "resource not found" do
49
52
  before do
50
53
  stub_get("/orgs/#{org}/members").
51
- to_return(:body => fixture('orgs/members.json'), :status => 404, :headers => {:content_type => "application/json; charset=utf-8"})
54
+ to_return(:body => fixture('orgs/members.json'), :status => 404,
55
+ :headers => {:content_type => "application/json; charset=utf-8"})
52
56
  end
53
57
 
54
58
  it "should return 404 with a message 'Not Found'" do
55
59
  expect {
56
- github.orgs.members org
60
+ github.orgs.members.list org
57
61
  }.to raise_error(Github::Error::NotFound)
58
62
  end
59
63
  end
60
- end # members
64
+ end # list
61
65
 
62
- describe "member?" do
66
+ describe "#member?" do
63
67
  context "with username ane reponame passed" do
64
68
  context "this repo is being watched by the user"
65
69
  before do
66
70
  stub_get("/orgs/#{org}/members/#{member}").
67
- to_return(:body => "", :status => 404, :headers => {:user_agent => github.user_agent})
71
+ to_return(:body => "", :status => 404,
72
+ :headers => {:user_agent => github.user_agent})
68
73
  end
69
74
 
70
75
  it "should return false if resource not found" do
71
- membership = github.orgs.member? org, member
76
+ membership = github.orgs.members.member? org, member
72
77
  membership.should be_false
73
78
  end
74
79
 
75
80
  it "should return true if resoure found" do
76
81
  stub_get("/orgs/#{org}/members/#{member}").
77
82
  to_return(:body => "", :status => 204, :headers => {:user_agent => github.user_agent})
78
- membership = github.orgs.member? org, member
83
+ membership = github.orgs.members.member? org, member
79
84
  membership.should be_true
80
85
  end
81
86
  end
82
87
 
83
88
  context "without org name and member name passed" do
84
89
  it "should fail validation " do
85
- expect { github.orgs.member?(nil, nil) }.to raise_error(ArgumentError)
90
+ expect {
91
+ github.orgs.members.member?(nil, nil)
92
+ }.to raise_error(ArgumentError)
86
93
  end
87
94
  end
88
95
  end # member?
89
96
 
90
- describe "public_members" do
97
+ describe "#list_public" do
91
98
  context "resource found" do
92
99
  before do
93
100
  stub_get("/orgs/#{org}/public_members").
94
- to_return(:body => fixture('orgs/members.json'), :status => 200, :headers => {:content_type => "application/json; charset=utf-8"})
101
+ to_return(:body => fixture('orgs/members.json'), :status => 200,
102
+ :headers => {:content_type => "application/json; charset=utf-8"})
95
103
  end
96
104
 
97
105
  it "should fail to get resource without org name" do
98
- expect { github.orgs.public_members }.to raise_error(ArgumentError)
106
+ expect { github.orgs.members.list_public }.to raise_error(ArgumentError)
99
107
  end
100
108
 
101
109
  it "should get the resources" do
102
- github.orgs.public_members org
110
+ github.orgs.members.list_public org
103
111
  a_get("/orgs/#{org}/public_members").should have_been_made
104
112
  end
105
113
 
106
114
  it "should return array of resources" do
107
- public_members = github.orgs.public_members org
115
+ public_members = github.orgs.members.list_public org
108
116
  public_members.should be_an Array
109
117
  public_members.should have(1).items
110
118
  end
111
119
 
112
120
  it "should be a mash type" do
113
- public_members = github.orgs.public_members org
121
+ public_members = github.orgs.members.list_public org
114
122
  public_members.first.should be_a Hashie::Mash
115
123
  end
116
124
 
117
125
  it "should get public_members information" do
118
- public_members = github.orgs.public_members org
126
+ public_members = github.orgs.members.list_public org
119
127
  public_members.first.login.should == 'octocat'
120
128
  end
121
129
 
122
130
  it "should yield to a block" do
123
- github.orgs.should_receive(:public_members).with(org).and_yield('web')
124
- github.orgs.public_members(org) { |param| 'web' }
131
+ github.orgs.members.should_receive(:list_public).with(org).and_yield('web')
132
+ github.orgs.members.list_public(org) { |param| 'web' }
125
133
  end
126
134
  end
127
135
 
@@ -133,11 +141,11 @@ describe Github::Orgs::Members do
133
141
 
134
142
  it "should return 404 with a message 'Not Found'" do
135
143
  expect {
136
- github.orgs.public_members org
144
+ github.orgs.members.list_public org
137
145
  }.to raise_error(Github::Error::NotFound)
138
146
  end
139
147
  end
140
- end # public_members
148
+ end # list_public
141
149
 
142
150
  describe "public_member?" do
143
151
  context "with username ane reponame passed" do
@@ -148,21 +156,23 @@ describe Github::Orgs::Members do
148
156
  end
149
157
 
150
158
  it "should return false if resource not found" do
151
- public_member = github.orgs.public_member? org, member
159
+ public_member = github.orgs.members.public_member? org, member
152
160
  public_member.should be_false
153
161
  end
154
162
 
155
163
  it "should return true if resoure found" do
156
164
  stub_get("/orgs/#{org}/public_members/#{member}").
157
165
  to_return(:body => "", :status => 204, :headers => {:user_agent => github.user_agent})
158
- public_member = github.orgs.public_member? org, member
166
+ public_member = github.orgs.members.public_member? org, member
159
167
  public_member.should be_true
160
168
  end
161
169
  end
162
170
 
163
171
  context "without org name and member name passed" do
164
172
  it "should fail validation " do
165
- expect { github.orgs.public_member?(nil, nil) }.to raise_error(ArgumentError)
173
+ expect {
174
+ github.orgs.members.public_member?(nil, nil)
175
+ }.to raise_error(ArgumentError)
166
176
  end
167
177
  end
168
178
  end # public_member?
@@ -175,11 +185,11 @@ describe Github::Orgs::Members do
175
185
  end
176
186
 
177
187
  it "should fail to get resource without org name" do
178
- expect { github.orgs.publicize }.to raise_error(ArgumentError)
188
+ expect { github.orgs.members.publicize }.to raise_error(ArgumentError)
179
189
  end
180
190
 
181
191
  it "should get the resources" do
182
- github.orgs.publicize org, member
192
+ github.orgs.members.publicize org, member
183
193
  a_put("/orgs/#{org}/public_members/#{member}").should have_been_made
184
194
  end
185
195
  end
@@ -187,30 +197,34 @@ describe Github::Orgs::Members do
187
197
  context "resource not found" do
188
198
  before do
189
199
  stub_put("/orgs/#{org}/public_members/#{member}").
190
- to_return(:body => fixture('orgs/members.json'), :status => 404, :headers => {:content_type => "application/json; charset=utf-8"})
200
+ to_return(:body => fixture('orgs/members.json'), :status => 404,
201
+ :headers => {:content_type => "application/json; charset=utf-8"})
191
202
  end
192
203
 
193
204
  it "should return 404 with a message 'Not Found'" do
194
205
  expect {
195
- github.orgs.publicize org, member
206
+ github.orgs.members.publicize org, member
196
207
  }.to raise_error(Github::Error::NotFound)
197
208
  end
198
209
  end
199
210
  end # publicize
200
211
 
201
- describe "conceal" do
212
+ describe "#conceal" do
202
213
  context "request perfomed successfully" do
203
214
  before do
204
215
  stub_delete("/orgs/#{org}/public_members/#{member}").
205
- to_return(:body => fixture('orgs/members.json'), :status => 204, :headers => {:content_type => "application/json; charset=utf-8"})
216
+ to_return(:body => fixture('orgs/members.json'), :status => 204,
217
+ :headers => {:content_type => "application/json; charset=utf-8"})
206
218
  end
207
219
 
208
220
  it "should fail to get resource without org name" do
209
- expect { github.orgs.conceal nil, nil }.to raise_error(ArgumentError)
221
+ expect {
222
+ github.orgs.members.conceal nil, nil
223
+ }.to raise_error(ArgumentError)
210
224
  end
211
225
 
212
226
  it "should get the resources" do
213
- github.orgs.conceal org, member
227
+ github.orgs.members.conceal org, member
214
228
  a_delete("/orgs/#{org}/public_members/#{member}").should have_been_made
215
229
  end
216
230
  end
@@ -218,18 +232,19 @@ describe Github::Orgs::Members do
218
232
  context "resource not found" do
219
233
  before do
220
234
  stub_delete("/orgs/#{org}/public_members/#{member}").
221
- to_return(:body => fixture('orgs/members.json'), :status => 404, :headers => {:content_type => "application/json; charset=utf-8"})
235
+ to_return(:body => fixture('orgs/members.json'), :status => 404,
236
+ :headers => {:content_type => "application/json; charset=utf-8"})
222
237
  end
223
238
 
224
239
  it "should return 404 with a message 'Not Found'" do
225
240
  expect {
226
- github.orgs.conceal org, member
241
+ github.orgs.members.conceal org, member
227
242
  }.to raise_error(Github::Error::NotFound)
228
243
  end
229
244
  end
230
245
  end # conceal
231
246
 
232
- describe "delete_member" do
247
+ describe "#delete" do
233
248
  let(:hook_id) { 1 }
234
249
 
235
250
  context "resource deleted successfully" do
@@ -239,11 +254,11 @@ describe Github::Orgs::Members do
239
254
  end
240
255
 
241
256
  it "should fail to delete without org and member parameters" do
242
- expect { github.repos.delete_hook nil, nil }.to raise_error(ArgumentError)
257
+ expect { github.orgs.members.delete nil, nil }.to raise_error(ArgumentError)
243
258
  end
244
259
 
245
260
  it "should delete the resource" do
246
- github.orgs.delete_member org, member
261
+ github.orgs.members.delete org, member
247
262
  a_delete("/orgs/#{org}/members/#{member}").should have_been_made
248
263
  end
249
264
  end
@@ -251,16 +266,16 @@ describe Github::Orgs::Members do
251
266
  context "failed to edit resource" do
252
267
  before do
253
268
  stub_delete("/orgs/#{org}/members/#{member}").
254
- to_return(:body => '', :status => 404, :headers => { :content_type => "application/json; charset=utf-8"})
255
-
269
+ to_return(:body => '', :status => 404,
270
+ :headers => { :content_type => "application/json; charset=utf-8"})
256
271
  end
257
272
 
258
273
  it "should fail to find resource" do
259
274
  expect {
260
- github.orgs.delete_member org, member
275
+ github.orgs.members.delete org, member
261
276
  }.to raise_error(Github::Error::NotFound)
262
277
  end
263
278
  end
264
- end # delete_member
279
+ end # delete
265
280
 
266
281
  end # Github::Orgs::Members
@@ -8,84 +8,87 @@ describe Github::Orgs::Teams do
8
8
  let(:team) { 'github' }
9
9
  let(:member) { 'github' }
10
10
 
11
- after { github.user, github.repo, github.oauth_token = nil, nil, nil }
11
+ after { reset_authentication_for github }
12
12
 
13
- describe "teams" do
13
+ describe "#list" do
14
14
  context "resource found" do
15
15
  before do
16
16
  stub_get("/orgs/#{org}/teams").
17
- to_return(:body => fixture('orgs/teams.json'), :status => 200, :headers => {:content_type => "application/json; charset=utf-8"})
17
+ to_return(:body => fixture('orgs/teams.json'), :status => 200,
18
+ :headers => {:content_type => "application/json; charset=utf-8"})
18
19
  end
19
20
 
20
21
  it "should fail to get resource without org name" do
21
- expect { github.orgs.teams nil }.to raise_error(ArgumentError)
22
+ expect { github.orgs.teams.list nil }.to raise_error(ArgumentError)
22
23
  end
23
24
 
24
25
  it "should get the resources" do
25
- github.orgs.teams org
26
+ github.orgs.teams.list org
26
27
  a_get("/orgs/#{org}/teams").should have_been_made
27
28
  end
28
29
 
29
30
  it "should return array of resources" do
30
- teams = github.orgs.teams org
31
+ teams = github.orgs.teams.list org
31
32
  teams.should be_an Array
32
33
  teams.should have(1).items
33
34
  end
34
35
 
35
36
  it "should be a mash type" do
36
- teams = github.orgs.teams org
37
+ teams = github.orgs.teams.list org
37
38
  teams.first.should be_a Hashie::Mash
38
39
  end
39
40
 
40
41
  it "should get teams information" do
41
- teams = github.orgs.teams org
42
+ teams = github.orgs.teams.list org
42
43
  teams.first.name.should == 'Owners'
43
44
  end
44
45
 
45
46
  it "should yield to a block" do
46
- github.orgs.should_receive(:teams).with(org).and_yield('web')
47
- github.orgs.teams(org) { |param| 'web' }
47
+ github.orgs.teams.should_receive(:list).with(org).and_yield('web')
48
+ github.orgs.teams.list(org) { |param| 'web' }
48
49
  end
49
50
  end
50
51
 
51
52
  context "resource not found" do
52
53
  before do
53
54
  stub_get("/orgs/#{org}/teams").
54
- to_return(:body => fixture('orgs/teams.json'), :status => 404, :headers => {:content_type => "application/json; charset=utf-8"})
55
+ to_return(:body => fixture('orgs/teams.json'), :status => 404,
56
+ :headers => {:content_type => "application/json; charset=utf-8"})
55
57
  end
56
58
 
57
59
  it "should return 404 with a message 'Not Found'" do
58
60
  expect {
59
- github.orgs.teams org
61
+ github.orgs.teams.list org
60
62
  }.to raise_error(Github::Error::NotFound)
61
63
  end
62
64
  end
63
- end # teams
65
+ end # list
64
66
 
65
- describe "team" do
67
+ describe "#get" do
66
68
  context "resource found" do
67
69
  before do
68
70
  stub_get("/teams/#{team}").
69
- to_return(:body => fixture('orgs/team.json'), :status => 200, :headers => {:content_type => "application/json; charset=utf-8"})
71
+ to_return(:body => fixture('orgs/team.json'), :status => 200,
72
+ :headers => {:content_type => "application/json; charset=utf-8"})
70
73
  end
71
74
 
72
75
  it "should fail to get resource without org name" do
73
- expect { github.orgs.team nil }.to raise_error(ArgumentError)
76
+ expect { github.orgs.teams.get nil }.to raise_error(ArgumentError)
74
77
  end
75
78
 
76
79
  it "should get the resource" do
77
- github.orgs.team team
80
+ github.orgs.teams.get team
78
81
  a_get("/teams/#{team}").should have_been_made
79
82
  end
80
83
 
81
84
  it "should get team information" do
82
- team_res = github.orgs.team team
85
+ team_res = github.orgs.teams.get team
83
86
  team_res.id.should == 1
84
87
  team_res.name.should == 'Owners'
85
88
  end
86
89
 
87
90
  it "should return mash" do
88
- team_res = github.orgs.team team
91
+ team_res = github.orgs.teams.get team
89
92
  team_res.should be_a Hashie::Mash
90
93
  end
91
94
  end
@@ -93,18 +96,19 @@ describe Github::Orgs::Teams do
93
96
  context "resource not found" do
94
97
  before do
95
98
  stub_get("/teams/#{team}").
96
- to_return(:body => fixture('orgs/team.json'), :status => 404, :headers => {:content_type => "application/json; charset=utf-8"})
99
+ to_return(:body => fixture('orgs/team.json'), :status => 404,
100
+ :headers => {:content_type => "application/json; charset=utf-8"})
97
101
  end
98
102
 
99
103
  it "should fail to retrive resource" do
100
104
  expect {
101
- github.orgs.team team
105
+ github.orgs.teams.get team
102
106
  }.to raise_error(Github::Error::NotFound)
103
107
  end
104
108
  end
105
- end # team
109
+ end # get
106
110
 
107
- describe "create_team" do
111
+ describe "#create" do
108
112
  let(:inputs) { { :name => 'new team', :permissions => 'push', :repo_names => [ 'github/dotfiles' ] }}
109
113
 
110
114
  context "resouce created" do
@@ -114,27 +118,27 @@ describe Github::Orgs::Teams do
114
118
  end
115
119
 
116
120
  it "should fail to create resource if 'org_name' param is missing" do
117
- expect { github.orgs.create_team nil, inputs }.to raise_error(ArgumentError)
121
+ expect { github.orgs.teams.create nil, inputs }.to raise_error(ArgumentError)
118
122
  end
119
123
 
120
124
  it "should failt to create resource if 'name' input is missing" do
121
125
  expect {
122
- github.orgs.create_team org, inputs.except(:name)
126
+ github.orgs.teams.create org, inputs.except(:name)
123
127
  }.to raise_error(Github::Error::RequiredParams)
124
128
  end
125
129
 
126
130
  it "should create resource successfully" do
127
- github.orgs.create_team org, inputs
131
+ github.orgs.teams.create org, inputs
128
132
  a_post("/orgs/#{org}/teams").with(inputs).should have_been_made
129
133
  end
130
134
 
131
135
  it "should return the resource" do
132
- team = github.orgs.create_team org, inputs
136
+ team = github.orgs.teams.create org, inputs
133
137
  team.should be_a Hashie::Mash
134
138
  end
135
139
 
136
140
  it "should get the team information" do
137
- team = github.orgs.create_team org, inputs
141
+ team = github.orgs.teams.create org, inputs
138
142
  team.name.should == 'Owners'
139
143
  end
140
144
  end
@@ -142,49 +146,50 @@ describe Github::Orgs::Teams do
142
146
  context "failed to create resource" do
143
147
  before do
144
148
  stub_post("/orgs/#{org}/teams").with(inputs).
145
- to_return(:body => fixture('orgs/team.json'), :status => 404, :headers => {:content_type => "application/json; charset=utf-8"})
149
+ to_return(:body => fixture('orgs/team.json'), :status => 404,
150
+ :headers => {:content_type => "application/json; charset=utf-8"})
146
151
  end
147
152
 
148
153
  it "should faile to retrieve resource" do
149
154
  expect {
150
- github.orgs.create_team org, inputs
155
+ github.orgs.teams.create org, inputs
151
156
  }.to raise_error(Github::Error::NotFound)
152
157
  end
153
158
  end
154
- end # create_team
159
+ end # create
155
160
 
156
- describe "edit_team" do
161
+ describe "#edit" do
157
162
  let(:inputs) { { :name => 'new team', :permissions => 'push' } }
158
163
 
159
164
  context "resouce edited" do
160
165
  before do
161
166
  stub_patch("/teams/#{team}").with(inputs).
162
- to_return(:body => fixture('orgs/team.json'), :status => 201, :headers => {:content_type => "application/json; charset=utf-8"})
163
-
167
+ to_return(:body => fixture('orgs/team.json'), :status => 201,
168
+ :headers => {:content_type => "application/json; charset=utf-8"})
164
169
  end
165
170
 
166
171
  it "should fail to create resource if 'team name' param is missing" do
167
- expect { github.orgs.edit_team nil, inputs }.to raise_error(ArgumentError)
172
+ expect { github.orgs.teams.edit nil, inputs }.to raise_error(ArgumentError)
168
173
  end
169
174
 
170
175
  it "should failt to create resource if 'name' input is missing" do
171
176
  expect {
172
- github.orgs.edit_team team, inputs.except(:name)
177
+ github.orgs.teams.edit team, inputs.except(:name)
173
178
  }.to raise_error(Github::Error::RequiredParams)
174
179
  end
175
180
 
176
181
  it "should create resource successfully" do
177
- github.orgs.edit_team team, inputs
182
+ github.orgs.teams.edit team, inputs
178
183
  a_patch("/teams/#{team}").with(inputs).should have_been_made
179
184
  end
180
185
 
181
186
  it "should return the resource" do
182
- edited_team = github.orgs.edit_team team, inputs
187
+ edited_team = github.orgs.teams.edit team, inputs
183
188
  edited_team.should be_a Hashie::Mash
184
189
  end
185
190
 
186
191
  it "should get the team information" do
187
- edited_team = github.orgs.edit_team team, inputs
192
+ edited_team = github.orgs.teams.edit team, inputs
188
193
  edited_team.name.should == 'Owners'
189
194
  end
190
195
  end
@@ -192,20 +197,23 @@ describe Github::Orgs::Teams do
192
197
  context "failed to create resource" do
193
198
  before do
194
199
  stub_patch("/teams/#{team}").with(inputs).
195
- to_return(:body => fixture('orgs/team.json'), :status => 404, :headers => {:content_type => "application/json; charset=utf-8"})
200
+ to_return(:body => fixture('orgs/team.json'), :status => 404,
201
+ :headers => {:content_type => "application/json; charset=utf-8"})
196
202
  end
197
203
 
198
204
  it "should faile to retrieve resource" do
199
205
  expect {
200
- github.orgs.edit_team team, inputs
206
+ github.orgs.teams.edit team, inputs
201
207
  }.to raise_error(Github::Error::NotFound)
202
208
  end
203
209
  end
204
- end # edit_team
210
+ end # edit
205
211
 
206
- describe "delete_team" do
212
+ describe "#delete" do
207
213
  let(:team_id) { 1 }
208
214
 
215
+ it { github.orgs.teams.should respond_to :remove }
216
+
209
217
  context "resource edited successfully" do
210
218
  before do
211
219
  stub_delete("/teams/#{team}").
@@ -213,12 +221,11 @@ describe Github::Orgs::Teams do
213
221
  end
214
222
 
215
223
  it "should fail to delete without 'team_id' parameter" do
216
- github.user, github.repo = nil, nil
217
- expect { github.orgs.delete_team }.to raise_error(ArgumentError)
224
+ expect { github.orgs.teams.delete nil }.to raise_error(ArgumentError)
218
225
  end
219
226
 
220
227
  it "should delete the resource" do
221
- github.orgs.delete_team team
228
+ github.orgs.teams.delete team
222
229
  a_delete("/teams/#{team}").should have_been_made
223
230
  end
224
231
  end
@@ -230,12 +237,14 @@ describe Github::Orgs::Teams do
230
237
  end
231
238
 
232
239
  it "should fail to find resource" do
233
- expect { github.orgs.delete_team team }.to raise_error(Github::Error::NotFound)
240
+ expect {
241
+ github.orgs.teams.delete team
242
+ }.to raise_error(Github::Error::NotFound)
234
243
  end
235
244
  end
236
- end # delete_team
245
+ end # delete
237
246
 
238
- describe "team_members" do
247
+ describe "#list_members" do
239
248
  context "resource found" do
240
249
  before do
241
250
  stub_get("/teams/#{team}/members").
@@ -243,33 +252,33 @@ describe Github::Orgs::Teams do
243
252
  end
244
253
 
245
254
  it "should fail to get resource without org name" do
246
- expect { github.orgs.team_members }.to raise_error(ArgumentError)
255
+ expect { github.orgs.teams.list_members }.to raise_error(ArgumentError)
247
256
  end
248
257
 
249
258
  it "should get the resources" do
250
- github.orgs.team_members team
259
+ github.orgs.teams.list_members team
251
260
  a_get("/teams/#{team}/members").should have_been_made
252
261
  end
253
262
 
254
263
  it "should return array of resources" do
255
- teams = github.orgs.team_members team
264
+ teams = github.orgs.teams.list_members team
256
265
  teams.should be_an Array
257
266
  teams.should have(1).items
258
267
  end
259
268
 
260
269
  it "should be a mash type" do
261
- teams = github.orgs.team_members team
270
+ teams = github.orgs.teams.list_members team
262
271
  teams.first.should be_a Hashie::Mash
263
272
  end
264
273
 
265
274
  it "should get team members information" do
266
- teams = github.orgs.team_members team
275
+ teams = github.orgs.teams.list_members team
267
276
  teams.first.name.should == 'Owners'
268
277
  end
269
278
 
270
279
  it "should yield to a block" do
271
- github.orgs.should_receive(:team_members).with(team).and_yield('web')
272
- github.orgs.team_members(team) { |param| 'web' }
280
+ github.orgs.teams.should_receive(:list_members).with(team).and_yield('web')
281
+ github.orgs.teams.list_members(team) { |param| 'web' }
273
282
  end
274
283
  end
275
284
 
@@ -281,11 +290,11 @@ describe Github::Orgs::Teams do
281
290
 
282
291
  it "should return 404 with a message 'Not Found'" do
283
292
  expect {
284
- github.orgs.team_members team
293
+ github.orgs.teams.list_members team
285
294
  }.to raise_error(Github::Error::NotFound)
286
295
  end
287
296
  end
288
- end # team_members
297
+ end # list_members
289
298
 
290
299
  describe "team_member?" do
291
300
  context "with teamname ane membername passed" do
@@ -297,14 +306,14 @@ describe Github::Orgs::Teams do
297
306
  end
298
307
 
299
308
  it "should return false if resource not found" do
300
- team_membership = github.orgs.team_member? team, member
309
+ team_membership = github.orgs.teams.team_member? team, member
301
310
  team_membership.should be_false
302
311
  end
303
312
 
304
313
  it "should return true if resoure found" do
305
314
  stub_get("/teams/#{team}/members/#{member}").
306
315
  to_return(:body => "", :status => 204, :headers => {:user_agent => github.user_agent})
307
- team_membership = github.orgs.team_member? team, member
316
+ team_membership = github.orgs.teams.team_member? team, member
308
317
  team_membership.should be_true
309
318
  end
310
319
 
@@ -312,12 +321,14 @@ describe Github::Orgs::Teams do
312
321
 
313
322
  context "without org name and member name passed" do
314
323
  it "should fail validation " do
315
- expect { github.orgs.team_member?(nil, nil) }.to raise_error(ArgumentError)
324
+ expect {
325
+ github.orgs.teams.team_member?(nil, nil)
326
+ }.to raise_error(ArgumentError)
316
327
  end
317
328
  end
318
- end # member?
329
+ end # team_member?
319
330
 
320
- describe "add_team_member" do
331
+ describe "#add_member" do
321
332
  context "resouce added" do
322
333
  before do
323
334
  stub_put("/teams/#{team}/members/#{member}").
@@ -326,18 +337,18 @@ describe Github::Orgs::Teams do
326
337
 
327
338
  it "should fail to add resource if 'team' input is nil" do
328
339
  expect {
329
- github.orgs.add_team_member nil, member
340
+ github.orgs.teams.add_member nil, member
330
341
  }.to raise_error(ArgumentError)
331
342
  end
332
343
 
333
344
  it "should fail to add resource if 'member' input is nil" do
334
345
  expect {
335
- github.orgs.add_team_member team, nil
346
+ github.orgs.teams.add_member team, nil
336
347
  }.to raise_error(ArgumentError)
337
348
  end
338
349
 
339
350
  it "should add resource successfully" do
340
- github.orgs.add_team_member team, member
351
+ github.orgs.teams.add_member team, member
341
352
  a_put("/teams/#{team}/members/#{member}").should have_been_made
342
353
  end
343
354
  end
@@ -350,13 +361,13 @@ describe Github::Orgs::Teams do
350
361
 
351
362
  it "should fail to add resource" do
352
363
  expect {
353
- github.orgs.add_team_member team, member
364
+ github.orgs.teams.add_member team, member
354
365
  }.to raise_error(Github::Error::NotFound)
355
366
  end
356
367
  end
357
- end # add_team_member
368
+ end # add_member
358
369
 
359
- describe "remove_team_member" do
370
+ describe "#remove_member" do
360
371
  context "resouce deleted" do
361
372
  before do
362
373
  stub_delete("/teams/#{team}/members/#{member}").
@@ -365,18 +376,18 @@ describe Github::Orgs::Teams do
365
376
 
366
377
  it "should fail to delete resource if 'team' input is nil" do
367
378
  expect {
368
- github.orgs.remove_team_member nil, member
379
+ github.orgs.teams.remove_member nil, member
369
380
  }.to raise_error(ArgumentError)
370
381
  end
371
382
 
372
383
  it "should fail to delete resource if 'member' input is nil" do
373
384
  expect {
374
- github.orgs.remove_team_member member, nil
385
+ github.orgs.teams.remove_member member, nil
375
386
  }.to raise_error(ArgumentError)
376
387
  end
377
388
 
378
389
  it "should add resource successfully" do
379
- github.orgs.remove_team_member team, member
390
+ github.orgs.teams.remove_member team, member
380
391
  a_delete("/teams/#{team}/members/#{member}").should have_been_made
381
392
  end
382
393
  end
@@ -389,13 +400,13 @@ describe Github::Orgs::Teams do
389
400
 
390
401
  it "should fail to remove resource" do
391
402
  expect {
392
- github.orgs.remove_team_member team, member
403
+ github.orgs.teams.remove_member team, member
393
404
  }.to raise_error(Github::Error::NotFound)
394
405
  end
395
406
  end
396
- end # remove_team_member
407
+ end # remove_member
397
408
 
398
- describe "team_repos" do
409
+ describe "#list_repos" do
399
410
  context "resource found" do
400
411
  before do
401
412
  stub_get("/teams/#{team}/repos").
@@ -403,33 +414,33 @@ describe Github::Orgs::Teams do
403
414
  end
404
415
 
405
416
  it "should fail to get resource without team name" do
406
- expect { github.orgs.team_repos nil }.to raise_error(ArgumentError)
417
+ expect { github.orgs.teams.list_repos nil }.to raise_error(ArgumentError)
407
418
  end
408
419
 
409
420
  it "should get the resources" do
410
- github.orgs.team_repos team
421
+ github.orgs.teams.list_repos team
411
422
  a_get("/teams/#{team}/repos").should have_been_made
412
423
  end
413
424
 
414
425
  it "should return array of resources" do
415
- team_repos = github.orgs.team_repos team
426
+ team_repos = github.orgs.teams.list_repos team
416
427
  team_repos.should be_an Array
417
428
  team_repos.should have(1).items
418
429
  end
419
430
 
420
431
  it "should be a mash type" do
421
- team_repos = github.orgs.team_repos team
432
+ team_repos = github.orgs.teams.list_repos team
422
433
  team_repos.first.should be_a Hashie::Mash
423
434
  end
424
435
 
425
436
  it "should get teams information" do
426
- team_repos = github.orgs.team_repos team
437
+ team_repos = github.orgs.teams.list_repos team
427
438
  team_repos.first.name.should == 'github'
428
439
  end
429
440
 
430
441
  it "should yield to a block" do
431
- github.orgs.should_receive(:team_repos).with(team).and_yield('web')
432
- github.orgs.team_repos(team) { |param| 'web' }
442
+ github.orgs.teams.should_receive(:list_repos).with(team).and_yield('web')
443
+ github.orgs.teams.list_repos(team) { |param| 'web' }
433
444
  end
434
445
  end
435
446
 
@@ -441,44 +452,44 @@ describe Github::Orgs::Teams do
441
452
 
442
453
  it "should return 404 with a message 'Not Found'" do
443
454
  expect {
444
- github.orgs.team_repos team
455
+ github.orgs.teams.list_repos team
445
456
  }.to raise_error(Github::Error::NotFound)
446
457
  end
447
458
  end
448
- end # team_repos
459
+ end # list_repos
449
460
 
450
461
  describe "team_repo?" do
451
462
  context "with teamname, username ane reponame passed" do
452
463
 
453
464
  context "this repo is managed by the team"
454
465
  before do
455
- github.oauth_token = nil
456
- github.user = nil
457
466
  stub_get("/teams/#{team}/repos/#{user}/#{repo}").
458
467
  to_return(:body => "", :status => 404, :headers => {:user_agent => github.user_agent})
459
468
  end
460
469
 
461
470
  it "should return false if resource not found" do
462
- team_managed = github.orgs.team_repo? team, user, repo
471
+ team_managed = github.orgs.teams.team_repo? team, user, repo
463
472
  team_managed.should be_false
464
473
  end
465
474
 
466
475
  it "should return true if resoure found" do
467
476
  stub_get("/teams/#{team}/repos/#{user}/#{repo}").
468
477
  to_return(:body => "", :status => 204, :headers => {:user_agent => github.user_agent})
469
- team_managed = github.orgs.team_repo? team, user, repo
478
+ team_managed = github.orgs.teams.team_repo? team, user, repo
470
479
  team_managed.should be_true
471
480
  end
472
481
  end
473
482
 
474
483
  context "without org name and member name passed" do
475
484
  it "should fail validation " do
476
- expect { github.orgs.team_repo?(nil, nil, nil) }.to raise_error(ArgumentError)
485
+ expect {
486
+ github.orgs.teams.team_repo?(nil, nil, nil)
487
+ }.to raise_error(ArgumentError)
477
488
  end
478
489
  end
479
490
  end # team_repo?
480
491
 
481
- describe "add_team_repo" do
492
+ describe "#add_repo" do
482
493
  context "resouce added" do
483
494
  before do
484
495
  stub_put("/teams/#{team}/repos/#{user}/#{repo}").
@@ -487,18 +498,18 @@ describe Github::Orgs::Teams do
487
498
 
488
499
  it "should fail to add resource if 'team' input is nil" do
489
500
  expect {
490
- github.orgs.add_team_member nil, user, repo
501
+ github.orgs.teams.add_repo nil, user, repo
491
502
  }.to raise_error(ArgumentError)
492
503
  end
493
504
 
494
505
  it "should fail to add resource if 'user' input is nil" do
495
506
  expect {
496
- github.orgs.add_team_member team, nil, repo
507
+ github.orgs.teams.add_repo team, nil, repo
497
508
  }.to raise_error(ArgumentError)
498
509
  end
499
510
 
500
511
  it "should add resource successfully" do
501
- github.orgs.add_team_repo team, user, repo
512
+ github.orgs.teams.add_repo team, user, repo
502
513
  a_put("/teams/#{team}/repos/#{user}/#{repo}").should have_been_made
503
514
  end
504
515
  end
@@ -511,13 +522,13 @@ describe Github::Orgs::Teams do
511
522
 
512
523
  it "should fail to add resource" do
513
524
  expect {
514
- github.orgs.add_team_repo team, user, repo
525
+ github.orgs.teams.add_repo team, user, repo
515
526
  }.to raise_error(Github::Error::NotFound)
516
527
  end
517
528
  end
518
- end # add_team_repo
529
+ end # add_repo
519
530
 
520
- describe "remove_team_member" do
531
+ describe "#remove_repo" do
521
532
  context "resouce deleted" do
522
533
  before do
523
534
  stub_delete("/teams/#{team}/repos/#{user}/#{repo}").
@@ -526,18 +537,18 @@ describe Github::Orgs::Teams do
526
537
 
527
538
  it "should fail to delete resource if 'team' input is nil" do
528
539
  expect {
529
- github.orgs.remove_team_repo nil, user, repo
540
+ github.orgs.teams.remove_repo nil, user, repo
530
541
  }.to raise_error(ArgumentError)
531
542
  end
532
543
 
533
544
  it "should fail to delete resource if 'user' input is nil" do
534
545
  expect {
535
- github.orgs.remove_team_repo team, nil, repo
546
+ github.orgs.teams.remove_repo team, nil, repo
536
547
  }.to raise_error(ArgumentError)
537
548
  end
538
549
 
539
550
  it "should add resource successfully" do
540
- github.orgs.remove_team_repo team, user, repo
551
+ github.orgs.teams.remove_repo team, user, repo
541
552
  a_delete("/teams/#{team}/repos/#{user}/#{repo}").should have_been_made
542
553
  end
543
554
  end
@@ -550,10 +561,10 @@ describe Github::Orgs::Teams do
550
561
 
551
562
  it "should fail to remove resource" do
552
563
  expect {
553
- github.orgs.remove_team_repo team, user, repo
564
+ github.orgs.teams.remove_repo team, user, repo
554
565
  }.to raise_error(Github::Error::NotFound)
555
566
  end
556
567
  end
557
- end # remove_team_repo
568
+ end # remove_repo
558
569
 
559
570
  end # Github::Orgs::Teams