tinybucket 1.3.0 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (212) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +10 -1
  3. data/Gemfile +8 -7
  4. data/README.md +28 -5
  5. data/Rakefile +1 -0
  6. data/lib/faraday_middleware/follow_oauth_redirects.rb +5 -2
  7. data/lib/tinybucket.rb +2 -0
  8. data/lib/tinybucket/api.rb +3 -0
  9. data/lib/tinybucket/api/base_api.rb +2 -0
  10. data/lib/tinybucket/api/branch_restrictions_api.rb +6 -5
  11. data/lib/tinybucket/api/branches_api.rb +48 -0
  12. data/lib/tinybucket/api/build_status_api.rb +15 -1
  13. data/lib/tinybucket/api/comments_api.rb +7 -6
  14. data/lib/tinybucket/api/commits_api.rb +25 -4
  15. data/lib/tinybucket/api/diff_api.rb +4 -3
  16. data/lib/tinybucket/api/helper.rb +3 -0
  17. data/lib/tinybucket/api/helper/api_helper.rb +2 -0
  18. data/lib/tinybucket/api/helper/branch_restrictions_helper.rb +2 -0
  19. data/lib/tinybucket/api/helper/branches_helper.rb +29 -0
  20. data/lib/tinybucket/api/helper/build_status_helper.rb +11 -0
  21. data/lib/tinybucket/api/helper/comments_helper.rb +2 -0
  22. data/lib/tinybucket/api/helper/commits_helper.rb +8 -0
  23. data/lib/tinybucket/api/helper/diff_helper.rb +2 -0
  24. data/lib/tinybucket/api/helper/pull_requests_helper.rb +2 -0
  25. data/lib/tinybucket/api/helper/repo_helper.rb +2 -0
  26. data/lib/tinybucket/api/helper/repos_helper.rb +2 -0
  27. data/lib/tinybucket/api/helper/team_helper.rb +2 -0
  28. data/lib/tinybucket/api/helper/user_helper.rb +2 -0
  29. data/lib/tinybucket/api/pull_requests_api.rb +4 -3
  30. data/lib/tinybucket/api/repo_api.rb +4 -3
  31. data/lib/tinybucket/api/repos_api.rb +3 -1
  32. data/lib/tinybucket/api/team_api.rb +4 -2
  33. data/lib/tinybucket/api/user_api.rb +3 -1
  34. data/lib/tinybucket/api_factory.rb +2 -0
  35. data/lib/tinybucket/client.rb +3 -2
  36. data/lib/tinybucket/config.rb +5 -1
  37. data/lib/tinybucket/connection.rb +21 -8
  38. data/lib/tinybucket/constants.rb +2 -0
  39. data/lib/tinybucket/enumerator.rb +2 -0
  40. data/lib/tinybucket/error.rb +2 -0
  41. data/lib/tinybucket/error/base_error.rb +2 -0
  42. data/lib/tinybucket/error/conflict.rb +2 -0
  43. data/lib/tinybucket/error/not_found.rb +2 -0
  44. data/lib/tinybucket/error/service_error.rb +2 -0
  45. data/lib/tinybucket/iterator.rb +4 -2
  46. data/lib/tinybucket/model.rb +3 -0
  47. data/lib/tinybucket/model/base.rb +2 -2
  48. data/lib/tinybucket/model/branch.rb +48 -0
  49. data/lib/tinybucket/model/branch_restriction.rb +4 -2
  50. data/lib/tinybucket/model/build_status.rb +3 -1
  51. data/lib/tinybucket/model/comment.rb +4 -2
  52. data/lib/tinybucket/model/commit.rb +6 -2
  53. data/lib/tinybucket/model/concerns.rb +2 -0
  54. data/lib/tinybucket/model/concerns/acceptable_attributes.rb +2 -0
  55. data/lib/tinybucket/model/concerns/api_callable.rb +2 -0
  56. data/lib/tinybucket/model/concerns/enumerable.rb +2 -0
  57. data/lib/tinybucket/model/concerns/reloadable.rb +2 -0
  58. data/lib/tinybucket/model/concerns/repository_keys.rb +2 -0
  59. data/lib/tinybucket/model/error_response.rb +4 -2
  60. data/lib/tinybucket/model/page.rb +4 -2
  61. data/lib/tinybucket/model/profile.rb +4 -2
  62. data/lib/tinybucket/model/pull_request.rb +4 -2
  63. data/lib/tinybucket/model/repository.rb +31 -5
  64. data/lib/tinybucket/model/team.rb +4 -2
  65. data/lib/tinybucket/null_logger.rb +2 -0
  66. data/lib/tinybucket/parser.rb +5 -0
  67. data/lib/tinybucket/parser/base_parser.rb +3 -2
  68. data/lib/tinybucket/parser/branch_parser.rb +13 -0
  69. data/lib/tinybucket/parser/branch_restriction_parser.rb +2 -0
  70. data/lib/tinybucket/parser/branch_restrictions_parser.rb +2 -0
  71. data/lib/tinybucket/parser/branches_parser.rb +11 -0
  72. data/lib/tinybucket/parser/build_status_parser.rb +2 -0
  73. data/lib/tinybucket/parser/builds_parser.rb +11 -0
  74. data/lib/tinybucket/parser/comment_parser.rb +2 -0
  75. data/lib/tinybucket/parser/comments_parser.rb +2 -0
  76. data/lib/tinybucket/parser/commit_parser.rb +2 -0
  77. data/lib/tinybucket/parser/commits_parser.rb +2 -0
  78. data/lib/tinybucket/parser/profile_parser.rb +2 -0
  79. data/lib/tinybucket/parser/profiles_parser.rb +2 -0
  80. data/lib/tinybucket/parser/pull_request_parser.rb +2 -0
  81. data/lib/tinybucket/parser/pull_requests_parser.rb +2 -0
  82. data/lib/tinybucket/parser/repo_parser.rb +2 -0
  83. data/lib/tinybucket/parser/repos_parser.rb +2 -0
  84. data/lib/tinybucket/parser/team_parser.rb +2 -0
  85. data/lib/tinybucket/parser/teams_parser.rb +2 -0
  86. data/lib/tinybucket/request.rb +2 -0
  87. data/lib/tinybucket/resource.rb +3 -0
  88. data/lib/tinybucket/resource/base.rb +6 -0
  89. data/lib/tinybucket/resource/branch_restrictions.rb +2 -0
  90. data/lib/tinybucket/resource/branches.rb +35 -0
  91. data/lib/tinybucket/resource/commit/base.rb +2 -0
  92. data/lib/tinybucket/resource/commit/build_statuses.rb +6 -3
  93. data/lib/tinybucket/resource/commit/comments.rb +2 -0
  94. data/lib/tinybucket/resource/commits.rb +13 -0
  95. data/lib/tinybucket/resource/forks.rb +2 -0
  96. data/lib/tinybucket/resource/pull_request/base.rb +2 -0
  97. data/lib/tinybucket/resource/pull_request/comments.rb +2 -0
  98. data/lib/tinybucket/resource/pull_request/commits.rb +2 -0
  99. data/lib/tinybucket/resource/pull_requests.rb +2 -0
  100. data/lib/tinybucket/resource/repos.rb +2 -0
  101. data/lib/tinybucket/resource/team/base.rb +2 -0
  102. data/lib/tinybucket/resource/team/followers.rb +2 -0
  103. data/lib/tinybucket/resource/team/following.rb +2 -0
  104. data/lib/tinybucket/resource/team/members.rb +2 -0
  105. data/lib/tinybucket/resource/team/repos.rb +2 -0
  106. data/lib/tinybucket/resource/user/base.rb +2 -0
  107. data/lib/tinybucket/resource/user/followers.rb +2 -0
  108. data/lib/tinybucket/resource/user/following.rb +2 -0
  109. data/lib/tinybucket/resource/user/repos.rb +2 -0
  110. data/lib/tinybucket/resource/watchers.rb +2 -0
  111. data/lib/tinybucket/response.rb +2 -0
  112. data/lib/tinybucket/response/handler.rb +2 -0
  113. data/lib/tinybucket/version.rb +3 -1
  114. data/tinybucket.gemspec +1 -1
  115. metadata +11 -193
  116. data/.coveralls.yml +0 -1
  117. data/.gitignore +0 -33
  118. data/.rspec +0 -1
  119. data/.travis.yml +0 -13
  120. data/Guardfile +0 -13
  121. data/spec/fixtures/branch_restriction.json +0 -17
  122. data/spec/fixtures/build_status.json +0 -16
  123. data/spec/fixtures/comment.json +0 -30
  124. data/spec/fixtures/commit.json +0 -83
  125. data/spec/fixtures/profile.json +0 -29
  126. data/spec/fixtures/pull_request.json +0 -106
  127. data/spec/fixtures/repositories/get.json +0 -78
  128. data/spec/fixtures/repositories/test_owner/get.json +0 -78
  129. data/spec/fixtures/repositories/test_owner/test_repo/branch-restrictions/1/get.json +0 -17
  130. data/spec/fixtures/repositories/test_owner/test_repo/branch-restrictions/get.json +0 -101
  131. data/spec/fixtures/repositories/test_owner/test_repo/commit/1/approve/post.json +0 -16
  132. data/spec/fixtures/repositories/test_owner/test_repo/commit/1/comments/1/get.json +0 -38
  133. data/spec/fixtures/repositories/test_owner/test_repo/commit/1/comments/get.json +0 -40
  134. data/spec/fixtures/repositories/test_owner/test_repo/commit/1/get.json +0 -83
  135. data/spec/fixtures/repositories/test_owner/test_repo/commit/1/statuses/build/post.json +0 -16
  136. data/spec/fixtures/repositories/test_owner/test_repo/commit/1/statuses/build/test_status/get.json +0 -16
  137. data/spec/fixtures/repositories/test_owner/test_repo/commit/1/statuses/build/test_status/put.json +0 -16
  138. data/spec/fixtures/repositories/test_owner/test_repo/commits/get.json +0 -73
  139. data/spec/fixtures/repositories/test_owner/test_repo/diff/1/get.json +0 -21
  140. data/spec/fixtures/repositories/test_owner/test_repo/forks/get.json +0 -78
  141. data/spec/fixtures/repositories/test_owner/test_repo/get.json +0 -71
  142. data/spec/fixtures/repositories/test_owner/test_repo/patch/1/get.json +0 -29
  143. data/spec/fixtures/repositories/test_owner/test_repo/pullrequests/1/approve/delete.json +0 -3
  144. data/spec/fixtures/repositories/test_owner/test_repo/pullrequests/1/approve/post.json +0 -3
  145. data/spec/fixtures/repositories/test_owner/test_repo/pullrequests/1/comments/1/get.json +0 -30
  146. data/spec/fixtures/repositories/test_owner/test_repo/pullrequests/1/comments/get.json +0 -44
  147. data/spec/fixtures/repositories/test_owner/test_repo/pullrequests/1/commits/get.json +0 -66
  148. data/spec/fixtures/repositories/test_owner/test_repo/pullrequests/1/decline/post.json +0 -116
  149. data/spec/fixtures/repositories/test_owner/test_repo/pullrequests/1/diff/get.txt +0 -13
  150. data/spec/fixtures/repositories/test_owner/test_repo/pullrequests/1/get.json +0 -164
  151. data/spec/fixtures/repositories/test_owner/test_repo/pullrequests/1/merge/post.json +0 -123
  152. data/spec/fixtures/repositories/test_owner/test_repo/pullrequests/get.json +0 -112
  153. data/spec/fixtures/repositories/test_owner/test_repo/pullrequests/get_state_declined.json +0 -112
  154. data/spec/fixtures/repositories/test_owner/test_repo/pullrequests/get_state_merged.json +0 -112
  155. data/spec/fixtures/repositories/test_owner/test_repo/pullrequests/get_state_open.json +0 -112
  156. data/spec/fixtures/repositories/test_owner/test_repo/watchers/get.json +0 -32
  157. data/spec/fixtures/repository.json +0 -72
  158. data/spec/fixtures/team.json +0 -32
  159. data/spec/fixtures/teams/test_team/followers/get.json +0 -36
  160. data/spec/fixtures/teams/test_team/following/get.json +0 -39
  161. data/spec/fixtures/teams/test_team/get.json +0 -32
  162. data/spec/fixtures/teams/test_team/members/get.json +0 -36
  163. data/spec/fixtures/teams/test_team/repositories/get.json +0 -125
  164. data/spec/fixtures/users/test_owner/followers/get.json +0 -65
  165. data/spec/fixtures/users/test_owner/following/get.json +0 -100
  166. data/spec/fixtures/users/test_owner/get.json +0 -29
  167. data/spec/lib/tinybucket/api/branch_restrictions_api_spec.rb +0 -77
  168. data/spec/lib/tinybucket/api/build_status_api_spec.rb +0 -65
  169. data/spec/lib/tinybucket/api/comments_api_spec.rb +0 -132
  170. data/spec/lib/tinybucket/api/commits_api_spec.rb +0 -152
  171. data/spec/lib/tinybucket/api/diff_api_spec.rb +0 -5
  172. data/spec/lib/tinybucket/api/pull_requests_api_spec.rb +0 -259
  173. data/spec/lib/tinybucket/api/repo_api_spec.rb +0 -99
  174. data/spec/lib/tinybucket/api/repos_api_spec.rb +0 -27
  175. data/spec/lib/tinybucket/api/team_api_spec.rb +0 -82
  176. data/spec/lib/tinybucket/api/user_api_spec.rb +0 -73
  177. data/spec/lib/tinybucket/api_factory_spec.rb +0 -18
  178. data/spec/lib/tinybucket/client_spec.rb +0 -100
  179. data/spec/lib/tinybucket/connection_spec.rb +0 -30
  180. data/spec/lib/tinybucket/error/service_error_spec.rb +0 -23
  181. data/spec/lib/tinybucket/model/branch_restriction_spec.rb +0 -35
  182. data/spec/lib/tinybucket/model/build_status_spec.rb +0 -66
  183. data/spec/lib/tinybucket/model/comment_spec.rb +0 -37
  184. data/spec/lib/tinybucket/model/commit_spec.rb +0 -108
  185. data/spec/lib/tinybucket/model/page_spec.rb +0 -28
  186. data/spec/lib/tinybucket/model/profile_spec.rb +0 -52
  187. data/spec/lib/tinybucket/model/pull_request_spec.rb +0 -141
  188. data/spec/lib/tinybucket/model/repository_spec.rb +0 -131
  189. data/spec/lib/tinybucket/model/team_spec.rb +0 -70
  190. data/spec/lib/tinybucket/null_logger_spec.rb +0 -53
  191. data/spec/lib/tinybucket/resource/branch_restrictions_spec.rb +0 -60
  192. data/spec/lib/tinybucket/resource/commit/build_statuses_spec.rb +0 -50
  193. data/spec/lib/tinybucket/resource/commit/comments_spec.rb +0 -49
  194. data/spec/lib/tinybucket/resource/commits_spec.rb +0 -43
  195. data/spec/lib/tinybucket/resource/forks_spec.rb +0 -36
  196. data/spec/lib/tinybucket/resource/pull_request/comments_spec.rb +0 -41
  197. data/spec/lib/tinybucket/resource/pull_request/commits_spec.rb +0 -41
  198. data/spec/lib/tinybucket/resource/pull_requests_spec.rb +0 -59
  199. data/spec/lib/tinybucket/resource/repos_spec.rb +0 -76
  200. data/spec/lib/tinybucket/resource/team/followers_spec.rb +0 -27
  201. data/spec/lib/tinybucket/resource/team/following_spec.rb +0 -27
  202. data/spec/lib/tinybucket/resource/team/members_spec.rb +0 -27
  203. data/spec/lib/tinybucket/resource/team/repos_spec.rb +0 -27
  204. data/spec/lib/tinybucket/resource/user/followers_spec.rb +0 -27
  205. data/spec/lib/tinybucket/resource/user/following_spec.rb +0 -27
  206. data/spec/lib/tinybucket/resource/user/repos_spec.rb +0 -27
  207. data/spec/lib/tinybucket/resource/watchers_spec.rb +0 -38
  208. data/spec/lib/tinybucket_spec.rb +0 -42
  209. data/spec/spec_helper.rb +0 -45
  210. data/spec/support/api_response_macros.rb +0 -74
  211. data/spec/support/fixture_macros.rb +0 -5
  212. data/spec/support/model_macros.rb +0 -103
@@ -1,99 +0,0 @@
1
- require 'spec_helper.rb'
2
-
3
- RSpec.describe Tinybucket::Api::RepoApi do
4
- include ApiResponseMacros
5
-
6
- let(:repo_owner) { 'test_owner' }
7
- let(:repo_slug) { 'test_repo' }
8
- let(:request_path) { nil }
9
-
10
- let(:api) do
11
- api = Tinybucket::Api::RepoApi.new
12
- api.repo_owner = repo_owner
13
- api.repo_slug = repo_slug
14
- api
15
- end
16
-
17
- it { expect(api).to be_a_kind_of(Tinybucket::Api::BaseApi) }
18
-
19
- before { stub_apiresponse(:get, request_path) if request_path }
20
-
21
- describe 'find' do
22
- subject { api.find }
23
-
24
- context 'when without repo_owner and repo_slug' do
25
- let(:repo_owner) { nil }
26
- let(:repo_slug) { nil }
27
- it { expect { subject }.to raise_error(ArgumentError) }
28
- end
29
-
30
- context 'when without repo_owner' do
31
- let(:repo_owner) { nil }
32
- it { expect { subject }.to raise_error(ArgumentError) }
33
- end
34
-
35
- context 'when without repo_slug' do
36
- let(:repo_slug) { nil }
37
- it { expect { subject }.to raise_error(ArgumentError) }
38
- end
39
-
40
- context 'when with repo_owner and repo_slug' do
41
- let(:request_path) { "/repositories/#{repo_owner}/#{repo_slug}" }
42
- it { expect(subject).to be_an_instance_of(Tinybucket::Model::Repository) }
43
- end
44
- end
45
-
46
- describe 'watchers' do
47
- subject { api.watchers }
48
-
49
- context 'when without repo_owner and repo_slug' do
50
- let(:repo_owner) { nil }
51
- let(:repo_slug) { nil }
52
- it { expect { subject }.to raise_error(ArgumentError) }
53
- end
54
-
55
- context 'when without repo_owner' do
56
- let(:repo_owner) { nil }
57
- it { expect { subject }.to raise_error(ArgumentError) }
58
- end
59
-
60
- context 'when without repo_slug' do
61
- let(:repo_slug) { nil }
62
- it { expect { subject }.to raise_error(ArgumentError) }
63
- end
64
-
65
- context 'when with repo_owner and repo_slug' do
66
- let(:request_path) do
67
- "/repositories/#{repo_owner}/#{repo_slug}/watchers"
68
- end
69
- it { expect(subject).to be_an_instance_of(Tinybucket::Model::Page) }
70
- end
71
- end
72
-
73
- describe 'forks' do
74
- subject { api.forks }
75
-
76
- context 'when without repo_owner and repo_slug' do
77
- let(:repo_owner) { nil }
78
- let(:repo_slug) { nil }
79
- it { expect { subject }.to raise_error(ArgumentError) }
80
- end
81
-
82
- context 'when without repo_owner' do
83
- let(:repo_owner) { nil }
84
- it { expect { subject }.to raise_error(ArgumentError) }
85
- end
86
-
87
- context 'when without repo_slug' do
88
- let(:repo_slug) { nil }
89
- it { expect { subject }.to raise_error(ArgumentError) }
90
- end
91
-
92
- context 'when with repo_owner and repo_slug' do
93
- let(:request_path) do
94
- "/repositories/#{repo_owner}/#{repo_slug}/forks"
95
- end
96
- it { expect(subject).to be_an_instance_of(Tinybucket::Model::Page) }
97
- end
98
- end
99
- end
@@ -1,27 +0,0 @@
1
- require 'spec_helper.rb'
2
-
3
- RSpec.describe Tinybucket::Api::ReposApi do
4
- include ApiResponseMacros
5
-
6
- let(:api) { Tinybucket::Api::ReposApi.new }
7
-
8
- it { expect(api).to be_a_kind_of(Tinybucket::Api::BaseApi) }
9
-
10
- describe 'list' do
11
- subject { api.list(options) }
12
-
13
- before { stub_apiresponse(:get, request_path) }
14
-
15
- context 'without owner' do
16
- let(:options) { {} }
17
- let(:request_path) { '/repositories' }
18
- it { expect(subject).to be_an_instance_of(Tinybucket::Model::Page) }
19
- end
20
-
21
- context 'with owner' do
22
- let(:options) { { owner: 'test_owner' } }
23
- let(:request_path) { '/repositories/test_owner' }
24
- it { expect(subject).to be_an_instance_of(Tinybucket::Model::Page) }
25
- end
26
- end
27
- end
@@ -1,82 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe Tinybucket::Api::TeamApi do
4
- include ApiResponseMacros
5
-
6
- let(:api) { Tinybucket::Api::TeamApi.new }
7
- let(:teamname) { 'test_team' }
8
- let(:request_path) { nil }
9
- before { stub_apiresponse(:get, request_path) if request_path }
10
-
11
- it { expect(api).to be_a_kind_of(Tinybucket::Api::BaseApi) }
12
-
13
- describe 'profile' do
14
- subject { api.find(teamname) }
15
-
16
- context 'when without teamname' do
17
- let(:teamname) { nil }
18
- it { expect { subject }.to raise_error(ArgumentError) }
19
- end
20
-
21
- context 'when with teamname' do
22
- let(:request_path) { "/teams/#{teamname}" }
23
- it { expect(subject).to be_an_instance_of(Tinybucket::Model::Team) }
24
- end
25
- end
26
-
27
- describe 'members' do
28
- subject { api.members(teamname) }
29
-
30
- context 'when without teamname' do
31
- let(:teamname) { nil }
32
- it { expect { subject }.to raise_error(ArgumentError) }
33
- end
34
-
35
- context 'when with teamname' do
36
- let(:request_path) { "/teams/#{teamname}/members" }
37
- it { expect(subject).to be_an_instance_of(Tinybucket::Model::Page) }
38
- end
39
- end
40
-
41
- describe 'followers' do
42
- subject { api.followers(teamname) }
43
-
44
- context 'when without teamname' do
45
- let(:teamname) { nil }
46
- it { expect { subject }.to raise_error(ArgumentError) }
47
- end
48
-
49
- context 'when with teamname' do
50
- let(:request_path) { "/teams/#{teamname}/followers" }
51
- it { expect(subject).to be_an_instance_of(Tinybucket::Model::Page) }
52
- end
53
- end
54
-
55
- describe 'following' do
56
- subject { api.following(teamname) }
57
-
58
- context 'when without teamname' do
59
- let(:teamname) { nil }
60
- it { expect { subject }.to raise_error(ArgumentError) }
61
- end
62
-
63
- context 'when with teamname' do
64
- let(:request_path) { "/teams/#{teamname}/following" }
65
- it { expect(subject).to be_an_instance_of(Tinybucket::Model::Page) }
66
- end
67
- end
68
-
69
- describe 'repos' do
70
- subject { api.repos(teamname) }
71
-
72
- context 'when without teamname' do
73
- let(:teamname) { nil }
74
- it { expect { subject }.to raise_error(ArgumentError) }
75
- end
76
-
77
- context 'when with teamname' do
78
- let(:request_path) { "/teams/#{teamname}/repositories" }
79
- it { expect(subject).to be_an_instance_of(Tinybucket::Model::Page) }
80
- end
81
- end
82
- end
@@ -1,73 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe Tinybucket::Api::UserApi do
4
- include ApiResponseMacros
5
-
6
- let(:api) do
7
- api = Tinybucket::Api::UserApi.new
8
- api.username = user
9
- api
10
- end
11
-
12
- let(:user) { 'test_owner' }
13
- let(:request_path) { nil }
14
- before { stub_apiresponse(:get, request_path) if request_path }
15
-
16
- it { expect(api).to be_a_kind_of(Tinybucket::Api::BaseApi) }
17
-
18
- describe 'profile' do
19
- subject { api.profile }
20
-
21
- context 'when without username' do
22
- let(:user) { nil }
23
- it { expect { subject }.to raise_error(ArgumentError) }
24
- end
25
-
26
- context 'when with username' do
27
- let(:request_path) { "/users/#{user}" }
28
- it { expect(subject).to be_an_instance_of(Tinybucket::Model::Profile) }
29
- end
30
- end
31
-
32
- describe 'followers' do
33
- subject { api.followers }
34
-
35
- context 'when without username' do
36
- let(:user) { nil }
37
- it { expect { subject }.to raise_error(ArgumentError) }
38
- end
39
-
40
- context 'when with username' do
41
- let(:request_path) { "/users/#{user}/followers" }
42
- it { expect(subject).to be_an_instance_of(Tinybucket::Model::Page) }
43
- end
44
- end
45
-
46
- describe 'following' do
47
- subject { api.following }
48
-
49
- context 'when without username' do
50
- let(:user) { nil }
51
- it { expect { subject }.to raise_error(ArgumentError) }
52
- end
53
-
54
- context 'when with username' do
55
- let(:request_path) { "/users/#{user}/following" }
56
- it { expect(subject).to be_an_instance_of(Tinybucket::Model::Page) }
57
- end
58
- end
59
-
60
- describe 'repos' do
61
- subject { api.repos }
62
-
63
- context 'when without username' do
64
- let(:user) { nil }
65
- it { expect { subject }.to raise_error(ArgumentError) }
66
- end
67
-
68
- context 'when with username' do
69
- let(:request_path) { "/repositories/#{user}" }
70
- it { expect(subject).to be_an_instance_of(Tinybucket::Model::Page) }
71
- end
72
- end
73
- end
@@ -1,18 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe Tinybucket::ApiFactory do
4
-
5
- describe 'create_instance' do
6
- subject { Tinybucket::ApiFactory.create_instance(klass_name) }
7
-
8
- context 'with valid klass_name' do
9
- let(:klass_name) { 'PullRequests' }
10
- it { expect(subject).to be_a_kind_of(Tinybucket::Api::BaseApi) }
11
- end
12
-
13
- context 'with invalid klass_name' do
14
- let(:klass_name) { 'Invalid Klass Name' }
15
- it { expect { subject }.to raise_error(ArgumentError) }
16
- end
17
- end
18
- end
@@ -1,100 +0,0 @@
1
- require 'spec_helper.rb'
2
-
3
- RSpec.describe Tinybucket::Client do
4
- include ApiResponseMacros
5
-
6
- let(:client) { Tinybucket::Client.new }
7
-
8
- describe 'new' do
9
- subject { Tinybucket::Client.new }
10
- it { expect(subject).to be_an_instance_of(Tinybucket::Client) }
11
- end
12
-
13
- describe 'repos' do
14
- context 'when get public repositories' do
15
- before { stub_apiresponse(:get, '/repositories') }
16
-
17
- context 'without options' do
18
- subject { client.repos }
19
- it { expect(subject).to be_instance_of(Tinybucket::Resource::Repos) }
20
- it { expect(subject.instance_variable_get(:@owner)).to be_nil }
21
- end
22
- context 'with options' do
23
- subject { client.repos(options) }
24
- let(:options) { {} }
25
- it { expect(subject).to be_instance_of(Tinybucket::Resource::Repos) }
26
- it { expect(subject.instance_variable_get(:@owner)).to be_nil }
27
- end
28
- end
29
-
30
- context 'when get repositories of the owner' do
31
- let(:owner) { 'test_owner' }
32
- let(:request_path) { "/repositories/#{owner}" }
33
- before { stub_apiresponse(:get, request_path) }
34
-
35
- context 'without options' do
36
- subject { client.repos(owner) }
37
- it { expect(subject).to be_instance_of(Tinybucket::Resource::Repos) }
38
- it { expect(subject.instance_variable_get(:@owner)).to eq(owner) }
39
- end
40
- context 'with options' do
41
- let(:options) { { page: 1 } }
42
- subject { client.repos(owner, options) }
43
- it { expect(subject).to be_instance_of(Tinybucket::Resource::Repos) }
44
- it { expect(subject.instance_variable_get(:@owner)).to eq(owner) }
45
- end
46
- context 'with invalid options' do
47
- subject { client.repos(owner, 'invalid options') }
48
- it { expect { subject }.to raise_error(ArgumentError) }
49
- end
50
- context 'with invalid owner and options' do
51
- let(:invalid_owner) { 200 }
52
- let(:options) { { page: 1 } }
53
- subject { client.repos(invalid_owner, options) }
54
- it { expect { subject }.to raise_error(ArgumentError) }
55
- end
56
- end
57
-
58
- context 'when invalid argument passed' do
59
- context 'with a integer' do
60
- subject { client.repos(20) }
61
- it { expect { subject }.to raise_error(ArgumentError) }
62
- end
63
-
64
- context 'with a string and string' do
65
- subject { client.repos('test_owner', 'test_repository') }
66
- it { expect { subject }.to raise_error(ArgumentError) }
67
- end
68
-
69
- context 'with three arguments' do
70
- subject { client.repos('a', 'b', 'c') }
71
- it { expect { subject }.to raise_error(ArgumentError) }
72
- end
73
- end
74
- end
75
-
76
- describe 'repo' do
77
- let(:repo_owner) { 'test_owner' }
78
- let(:repo_slug) { 'test_repo' }
79
-
80
- subject { client.repo(repo_owner, repo_slug) }
81
-
82
- it 'return RepoApi instance' do
83
- expect(subject).to be_instance_of(Tinybucket::Model::Repository)
84
- expect(subject.repo_owner).to eq(repo_owner)
85
- expect(subject.repo_slug).to eq(repo_slug)
86
- end
87
- end
88
-
89
- describe 'team' do
90
- let(:team) { 'test_team' }
91
- subject { client.team(team) }
92
- it { expect(subject).to be_instance_of(Tinybucket::Model::Team) }
93
- end
94
-
95
- describe 'user' do
96
- let(:user) { 'test_owner' }
97
- subject { client.user(user) }
98
- it { expect(subject).to be_instance_of(Tinybucket::Model::Profile) }
99
- end
100
- end
@@ -1,30 +0,0 @@
1
- require 'spec_helper.rb'
2
-
3
- RSpec.describe Tinybucket::Connection do
4
-
5
- class MockApi
6
- include Tinybucket::Connection
7
-
8
- def config(key)
9
- nil
10
- end
11
- end
12
-
13
- let(:mock_api){ MockApi.new }
14
-
15
- describe 'clear_cache' do
16
- pending 'TODO: this method is required ?'
17
- end
18
-
19
- describe 'caching?' do
20
- pending 'TODO: this method is required ?'
21
- end
22
-
23
- describe 'connection(options, parser)' do
24
- subject{ mock_api.connection }
25
-
26
- context 'when no params are given ' do
27
- it { expect(subject).to be_instance_of(Faraday::Connection) }
28
- end
29
- end
30
- end
@@ -1,23 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe Tinybucket::Error::ServiceError do
4
- context 'initialize' do
5
- let(:env) do
6
- {
7
- response_headers: [],
8
- method: 'POST',
9
- url: 'https://api.example.org/path/to',
10
- status: 500,
11
- body: 'Internal Server Error'
12
- }
13
- end
14
-
15
- subject { Tinybucket::Error::ServiceError.new(env) }
16
-
17
- it { expect(subject).to be_an_instance_of(Tinybucket::Error::ServiceError) }
18
- it { expect(subject.http_method).to eq(env[:method]) }
19
- it { expect(subject.request_url).to eq(env[:url]) }
20
- it { expect(subject.status_code).to eq(env[:status]) }
21
- it { expect(subject.response_body).to eq(env[:body]) }
22
- end
23
- end