tinybucket 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (138) hide show
  1. checksums.yaml +7 -0
  2. data/.coveralls.yml +1 -0
  3. data/.gitignore +35 -0
  4. data/.rspec +1 -0
  5. data/.rubocop.yml +44 -0
  6. data/.travis.yml +10 -0
  7. data/Gemfile +22 -0
  8. data/Guardfile +13 -0
  9. data/LICENSE +21 -0
  10. data/README.md +237 -0
  11. data/Rakefile +39 -0
  12. data/lib/faraday_middleware/follow_oauth_redirects.rb +67 -0
  13. data/lib/tinybucket.rb +61 -0
  14. data/lib/tinybucket/api.rb +20 -0
  15. data/lib/tinybucket/api/base_api.rb +31 -0
  16. data/lib/tinybucket/api/branch_restrictions_api.rb +26 -0
  17. data/lib/tinybucket/api/comments_api.rb +46 -0
  18. data/lib/tinybucket/api/commits_api.rb +26 -0
  19. data/lib/tinybucket/api/diff_api.rb +17 -0
  20. data/lib/tinybucket/api/helper.rb +22 -0
  21. data/lib/tinybucket/api/helper/api_helper.rb +48 -0
  22. data/lib/tinybucket/api/helper/branch_restrictions_helper.rb +27 -0
  23. data/lib/tinybucket/api/helper/comments_helper.rb +49 -0
  24. data/lib/tinybucket/api/helper/commits_helper.rb +27 -0
  25. data/lib/tinybucket/api/helper/diff_helper.rb +29 -0
  26. data/lib/tinybucket/api/helper/pull_requests_helper.rb +44 -0
  27. data/lib/tinybucket/api/helper/repo_helper.rb +29 -0
  28. data/lib/tinybucket/api/helper/repos_helper.rb +21 -0
  29. data/lib/tinybucket/api/helper/team_helper.rb +35 -0
  30. data/lib/tinybucket/api/helper/user_helper.rb +31 -0
  31. data/lib/tinybucket/api/pull_requests_api.rb +49 -0
  32. data/lib/tinybucket/api/repo_api.rb +35 -0
  33. data/lib/tinybucket/api/repos_api.rb +19 -0
  34. data/lib/tinybucket/api/team_api.rb +51 -0
  35. data/lib/tinybucket/api/user_api.rb +44 -0
  36. data/lib/tinybucket/api_factory.rb +21 -0
  37. data/lib/tinybucket/client.rb +95 -0
  38. data/lib/tinybucket/connection.rb +62 -0
  39. data/lib/tinybucket/constants.rb +4 -0
  40. data/lib/tinybucket/error.rb +8 -0
  41. data/lib/tinybucket/error/base_error.rb +12 -0
  42. data/lib/tinybucket/error/service_error.rb +20 -0
  43. data/lib/tinybucket/model.rb +20 -0
  44. data/lib/tinybucket/model/base.rb +54 -0
  45. data/lib/tinybucket/model/branch_restriction.rb +17 -0
  46. data/lib/tinybucket/model/comment.rb +39 -0
  47. data/lib/tinybucket/model/commit.rb +39 -0
  48. data/lib/tinybucket/model/concerns.rb +14 -0
  49. data/lib/tinybucket/model/concerns/reloadable.rb +45 -0
  50. data/lib/tinybucket/model/concerns/repository_keys.rb +43 -0
  51. data/lib/tinybucket/model/error_response.rb +7 -0
  52. data/lib/tinybucket/model/page.rb +65 -0
  53. data/lib/tinybucket/model/profile.rb +37 -0
  54. data/lib/tinybucket/model/pull_request.rb +64 -0
  55. data/lib/tinybucket/model/repository.rb +96 -0
  56. data/lib/tinybucket/model/team.rb +39 -0
  57. data/lib/tinybucket/parser.rb +25 -0
  58. data/lib/tinybucket/parser/base_parser.rb +17 -0
  59. data/lib/tinybucket/parser/branch_restriction_parser.rb +9 -0
  60. data/lib/tinybucket/parser/branch_restrictions_parser.rb +10 -0
  61. data/lib/tinybucket/parser/comment_parser.rb +9 -0
  62. data/lib/tinybucket/parser/comments_parser.rb +10 -0
  63. data/lib/tinybucket/parser/commit_parser.rb +9 -0
  64. data/lib/tinybucket/parser/commits_parser.rb +9 -0
  65. data/lib/tinybucket/parser/profile_parser.rb +9 -0
  66. data/lib/tinybucket/parser/profiles_parser.rb +9 -0
  67. data/lib/tinybucket/parser/pull_request_parser.rb +9 -0
  68. data/lib/tinybucket/parser/pull_requests_parser.rb +10 -0
  69. data/lib/tinybucket/parser/repo_parser.rb +9 -0
  70. data/lib/tinybucket/parser/repos_parser.rb +10 -0
  71. data/lib/tinybucket/parser/team_parser.rb +9 -0
  72. data/lib/tinybucket/parser/teams_parser.rb +9 -0
  73. data/lib/tinybucket/request.rb +55 -0
  74. data/lib/tinybucket/response.rb +7 -0
  75. data/lib/tinybucket/response/error_handler.rb +14 -0
  76. data/lib/tinybucket/version.rb +3 -0
  77. data/spec/fixtures/commit.json +83 -0
  78. data/spec/fixtures/profile.json +29 -0
  79. data/spec/fixtures/pull_request.json +106 -0
  80. data/spec/fixtures/repositories/get.json +78 -0
  81. data/spec/fixtures/repositories/test_owner/get.json +78 -0
  82. data/spec/fixtures/repositories/test_owner/test_repo/branch-restrictions/1/get.json +17 -0
  83. data/spec/fixtures/repositories/test_owner/test_repo/branch-restrictions/get.json +101 -0
  84. data/spec/fixtures/repositories/test_owner/test_repo/commit/1/comments/1/get.json +38 -0
  85. data/spec/fixtures/repositories/test_owner/test_repo/commit/1/comments/get.json +40 -0
  86. data/spec/fixtures/repositories/test_owner/test_repo/commit/1/get.json +83 -0
  87. data/spec/fixtures/repositories/test_owner/test_repo/commits/get.json +73 -0
  88. data/spec/fixtures/repositories/test_owner/test_repo/diff/1/get.json +21 -0
  89. data/spec/fixtures/repositories/test_owner/test_repo/forks/get.json +78 -0
  90. data/spec/fixtures/repositories/test_owner/test_repo/get.json +71 -0
  91. data/spec/fixtures/repositories/test_owner/test_repo/patch/1/get.json +29 -0
  92. data/spec/fixtures/repositories/test_owner/test_repo/pullrequests/1/approve/delete.json +3 -0
  93. data/spec/fixtures/repositories/test_owner/test_repo/pullrequests/1/approve/post.json +3 -0
  94. data/spec/fixtures/repositories/test_owner/test_repo/pullrequests/1/comments/1/get.json +30 -0
  95. data/spec/fixtures/repositories/test_owner/test_repo/pullrequests/1/comments/get.json +44 -0
  96. data/spec/fixtures/repositories/test_owner/test_repo/pullrequests/1/commits/get.json +66 -0
  97. data/spec/fixtures/repositories/test_owner/test_repo/pullrequests/1/diff/get.txt +13 -0
  98. data/spec/fixtures/repositories/test_owner/test_repo/pullrequests/1/get.json +164 -0
  99. data/spec/fixtures/repositories/test_owner/test_repo/pullrequests/get.json +112 -0
  100. data/spec/fixtures/repositories/test_owner/test_repo/pullrequests/get_state_declined.json +112 -0
  101. data/spec/fixtures/repositories/test_owner/test_repo/pullrequests/get_state_merged.json +112 -0
  102. data/spec/fixtures/repositories/test_owner/test_repo/pullrequests/get_state_open.json +112 -0
  103. data/spec/fixtures/repositories/test_owner/test_repo/watchers/get.json +32 -0
  104. data/spec/fixtures/repository.json +71 -0
  105. data/spec/fixtures/teams/test_team/followers/get.json +36 -0
  106. data/spec/fixtures/teams/test_team/following/get.json +39 -0
  107. data/spec/fixtures/teams/test_team/get.json +32 -0
  108. data/spec/fixtures/teams/test_team/members/get.json +36 -0
  109. data/spec/fixtures/teams/test_team/repositories/get.json +125 -0
  110. data/spec/fixtures/users/test_owner/followers/get.json +65 -0
  111. data/spec/fixtures/users/test_owner/following/get.json +100 -0
  112. data/spec/fixtures/users/test_owner/get.json +29 -0
  113. data/spec/lib/tinybucket/api/branch_restrictions_api_spec.rb +78 -0
  114. data/spec/lib/tinybucket/api/comments_api_spec.rb +133 -0
  115. data/spec/lib/tinybucket/api/commits_api_spec.rb +63 -0
  116. data/spec/lib/tinybucket/api/diff_api_spec.rb +5 -0
  117. data/spec/lib/tinybucket/api/pull_requests_api_spec.rb +229 -0
  118. data/spec/lib/tinybucket/api/repo_api_spec.rb +100 -0
  119. data/spec/lib/tinybucket/api/repos_api_spec.rb +28 -0
  120. data/spec/lib/tinybucket/api/team_api_spec.rb +87 -0
  121. data/spec/lib/tinybucket/api/user_api_spec.rb +60 -0
  122. data/spec/lib/tinybucket/api_factory_spec.rb +23 -0
  123. data/spec/lib/tinybucket/client_spec.rb +102 -0
  124. data/spec/lib/tinybucket/connection_spec.rb +30 -0
  125. data/spec/lib/tinybucket/model/branch_restriction_spec.rb +29 -0
  126. data/spec/lib/tinybucket/model/comment_spec.rb +31 -0
  127. data/spec/lib/tinybucket/model/commit_spec.rb +62 -0
  128. data/spec/lib/tinybucket/model/page_spec.rb +58 -0
  129. data/spec/lib/tinybucket/model/profile_spec.rb +47 -0
  130. data/spec/lib/tinybucket/model/pull_request_spec.rb +122 -0
  131. data/spec/lib/tinybucket/model/repository_spec.rb +131 -0
  132. data/spec/lib/tinybucket/model/team_spec.rb +53 -0
  133. data/spec/lib/tinybucket_spec.rb +32 -0
  134. data/spec/spec_helper.rb +42 -0
  135. data/spec/support/api_response_macros.rb +30 -0
  136. data/spec/support/model_macros.rb +61 -0
  137. data/tinybucket.gemspec +36 -0
  138. metadata +437 -0
@@ -0,0 +1,100 @@
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_config) { {} }
11
+ let(:api) do
12
+ api = Tinybucket::Api::RepoApi.new(api_config)
13
+ api.repo_owner = repo_owner
14
+ api.repo_slug = repo_slug
15
+ api
16
+ end
17
+
18
+ it { expect(api).to be_a_kind_of(Tinybucket::Api::BaseApi) }
19
+
20
+ before { stub_apiresponse(:get, request_path) if request_path }
21
+
22
+ describe 'find' do
23
+ subject { api.find }
24
+
25
+ context 'when without repo_owner and repo_slug' do
26
+ let(:repo_owner) { nil }
27
+ let(:repo_slug) { nil }
28
+ it { expect { subject }.to raise_error(ArgumentError) }
29
+ end
30
+
31
+ context 'when without repo_owner' do
32
+ let(:repo_owner) { nil }
33
+ it { expect { subject }.to raise_error(ArgumentError) }
34
+ end
35
+
36
+ context 'when without repo_slug' do
37
+ let(:repo_slug) { nil }
38
+ it { expect { subject }.to raise_error(ArgumentError) }
39
+ end
40
+
41
+ context 'when with repo_owner and repo_slug' do
42
+ let(:request_path) { "/repositories/#{repo_owner}/#{repo_slug}" }
43
+ it { expect(subject).to be_an_instance_of(Tinybucket::Model::Repository) }
44
+ end
45
+ end
46
+
47
+ describe 'watchers' do
48
+ subject { api.watchers }
49
+
50
+ context 'when without repo_owner and repo_slug' do
51
+ let(:repo_owner) { nil }
52
+ let(:repo_slug) { nil }
53
+ it { expect { subject }.to raise_error(ArgumentError) }
54
+ end
55
+
56
+ context 'when without repo_owner' do
57
+ let(:repo_owner) { nil }
58
+ it { expect { subject }.to raise_error(ArgumentError) }
59
+ end
60
+
61
+ context 'when without repo_slug' do
62
+ let(:repo_slug) { nil }
63
+ it { expect { subject }.to raise_error(ArgumentError) }
64
+ end
65
+
66
+ context 'when with repo_owner and repo_slug' do
67
+ let(:request_path) do
68
+ "/repositories/#{repo_owner}/#{repo_slug}/watchers"
69
+ end
70
+ it { expect(subject).to be_an_instance_of(Tinybucket::Model::Page) }
71
+ end
72
+ end
73
+
74
+ describe 'forks' do
75
+ subject { api.forks }
76
+
77
+ context 'when without repo_owner and repo_slug' do
78
+ let(:repo_owner) { nil }
79
+ let(:repo_slug) { nil }
80
+ it { expect { subject }.to raise_error(ArgumentError) }
81
+ end
82
+
83
+ context 'when without repo_owner' do
84
+ let(:repo_owner) { nil }
85
+ it { expect { subject }.to raise_error(ArgumentError) }
86
+ end
87
+
88
+ context 'when without repo_slug' do
89
+ let(:repo_slug) { nil }
90
+ it { expect { subject }.to raise_error(ArgumentError) }
91
+ end
92
+
93
+ context 'when with repo_owner and repo_slug' do
94
+ let(:request_path) do
95
+ "/repositories/#{repo_owner}/#{repo_slug}/forks"
96
+ end
97
+ it { expect(subject).to be_an_instance_of(Tinybucket::Model::Page) }
98
+ end
99
+ end
100
+ end
@@ -0,0 +1,28 @@
1
+ require 'spec_helper.rb'
2
+
3
+ RSpec.describe Tinybucket::Api::ReposApi do
4
+ include ApiResponseMacros
5
+
6
+ let(:api_config) { {} }
7
+ let(:api) { Tinybucket::Api::ReposApi.new(api_config) }
8
+
9
+ it { expect(api).to be_a_kind_of(Tinybucket::Api::BaseApi) }
10
+
11
+ describe 'list' do
12
+ subject { api.list(options) }
13
+
14
+ before { stub_apiresponse(:get, request_path) }
15
+
16
+ context 'without owner' do
17
+ let(:options) { {} }
18
+ let(:request_path) { '/repositories' }
19
+ it { expect(subject).to be_an_instance_of(Tinybucket::Model::Page) }
20
+ end
21
+
22
+ context 'with owner' do
23
+ let(:options) { { owner: 'test_owner' } }
24
+ let(:request_path) { '/repositories/test_owner' }
25
+ it { expect(subject).to be_an_instance_of(Tinybucket::Model::Page) }
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,87 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe Tinybucket::Api::TeamApi do
4
+ include ApiResponseMacros
5
+
6
+ let(:api_config) { {} }
7
+ let(:api) do
8
+ Tinybucket::Api::TeamApi.new(api_config)
9
+ end
10
+
11
+ let(:teamname) { 'test_team' }
12
+ let(:request_path) { nil }
13
+ before { stub_apiresponse(:get, request_path) if request_path }
14
+
15
+ it { expect(api).to be_a_kind_of(Tinybucket::Api::BaseApi) }
16
+
17
+ describe 'profile' do
18
+ subject { api.find(teamname) }
19
+
20
+ context 'when without teamname' do
21
+ let(:teamname) { nil }
22
+ it { expect { subject }.to raise_error(ArgumentError) }
23
+ end
24
+
25
+ context 'when with teamname' do
26
+ let(:request_path) { "/teams/#{teamname}" }
27
+ it { expect(subject).to be_an_instance_of(Tinybucket::Model::Team) }
28
+ end
29
+ end
30
+
31
+ describe 'members' do
32
+ subject { api.members(teamname) }
33
+
34
+ context 'when without teamname' do
35
+ let(:teamname) { nil }
36
+ it { expect { subject }.to raise_error(ArgumentError) }
37
+ end
38
+
39
+ context 'when with teamname' do
40
+ let(:request_path) { "/teams/#{teamname}/members" }
41
+ it { expect(subject).to be_an_instance_of(Tinybucket::Model::Page) }
42
+ end
43
+ end
44
+
45
+ describe 'followers' do
46
+ subject { api.followers(teamname) }
47
+
48
+ context 'when without teamname' do
49
+ let(:teamname) { nil }
50
+ it { expect { subject }.to raise_error(ArgumentError) }
51
+ end
52
+
53
+ context 'when with teamname' do
54
+ let(:request_path) { "/teams/#{teamname}/followers" }
55
+ it { expect(subject).to be_an_instance_of(Tinybucket::Model::Page) }
56
+ end
57
+ end
58
+
59
+ describe 'following' do
60
+ subject { api.following(teamname) }
61
+
62
+ context 'when without teamname' do
63
+ let(:teamname) { nil }
64
+ it { expect { subject }.to raise_error(ArgumentError) }
65
+ end
66
+
67
+ context 'when with teamname' do
68
+ let(:request_path) { "/teams/#{teamname}/following" }
69
+ it { expect(subject).to be_an_instance_of(Tinybucket::Model::Page) }
70
+ end
71
+ end
72
+
73
+ describe 'repos' do
74
+ subject { api.repos(teamname) }
75
+
76
+ context 'when without teamname' do
77
+ let(:teamname) { nil }
78
+ it { expect { subject }.to raise_error(ArgumentError) }
79
+ end
80
+
81
+ context 'when with teamname' do
82
+ let(:request_path) { "/teams/#{teamname}/repositories" }
83
+ it { expect(subject).to be_an_instance_of(Tinybucket::Model::Page) }
84
+ end
85
+ end
86
+
87
+ end
@@ -0,0 +1,60 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe Tinybucket::Api::UserApi do
4
+ include ApiResponseMacros
5
+
6
+ let(:api_config) { {} }
7
+ let(:api) do
8
+ api = Tinybucket::Api::UserApi.new(api_config)
9
+ api.username = user
10
+ api
11
+ end
12
+
13
+ let(:user) { 'test_owner' }
14
+ let(:request_path) { nil }
15
+ before { stub_apiresponse(:get, request_path) if request_path }
16
+
17
+ it { expect(api).to be_a_kind_of(Tinybucket::Api::BaseApi) }
18
+
19
+ describe 'profile' do
20
+ subject { api.profile }
21
+
22
+ context 'when without username' do
23
+ let(:user) { nil }
24
+ it { expect { subject }.to raise_error(ArgumentError) }
25
+ end
26
+
27
+ context 'when with username' do
28
+ let(:request_path) { "/users/#{user}" }
29
+ it { expect(subject).to be_an_instance_of(Tinybucket::Model::Profile) }
30
+ end
31
+ end
32
+
33
+ describe 'followers' do
34
+ subject { api.followers }
35
+
36
+ context 'when without username' do
37
+ let(:user) { nil }
38
+ it { expect { subject }.to raise_error(ArgumentError) }
39
+ end
40
+
41
+ context 'when with username' do
42
+ let(:request_path) { "/users/#{user}/followers" }
43
+ it { expect(subject).to be_an_instance_of(Tinybucket::Model::Page) }
44
+ end
45
+ end
46
+
47
+ describe 'following' do
48
+ subject { api.following }
49
+
50
+ context 'when without username' do
51
+ let(:user) { nil }
52
+ it { expect { subject }.to raise_error(ArgumentError) }
53
+ end
54
+
55
+ context 'when with username' do
56
+ let(:request_path) { "/users/#{user}/following" }
57
+ it { expect(subject).to be_an_instance_of(Tinybucket::Model::Page) }
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,23 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe Tinybucket::ApiFactory do
4
+
5
+ describe 'create_instance' do
6
+ let(:klass_name) { 'PullRequests' }
7
+ let(:config) { {} }
8
+ let(:options) { {} }
9
+
10
+ subject do
11
+ Tinybucket::ApiFactory.create_instance(klass_name, config, options)
12
+ end
13
+
14
+ context 'with valid klass_name' do
15
+ it { expect(subject).to be_a_kind_of(Tinybucket::Api::BaseApi) }
16
+ end
17
+
18
+ context 'with invalid klass_name' do
19
+ let(:klass_name) { 'Invalid Klass Name' }
20
+ it { expect { subject }.to raise_error(ArgumentError) }
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,102 @@
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
+ let(:options) { {} }
10
+
11
+ context 'without block' do
12
+ subject { Tinybucket::Client.new(options) }
13
+ it { expect(subject.config).to eq(options) }
14
+ end
15
+
16
+ context 'with block' do
17
+ subject do
18
+ Tinybucket::Client.new do |config|
19
+ options.each_pair do |key, value|
20
+ config.send("#{key}=", value)
21
+ end
22
+ end
23
+ end
24
+ it { expect(subject.config).to eq(options) }
25
+ end
26
+ end
27
+
28
+ describe 'repos' do
29
+ context 'when get public repositories' do
30
+ before { stub_apiresponse(:get, '/repositories') }
31
+
32
+ context 'without options' do
33
+ subject { client.repos }
34
+ it { expect(subject).to be_instance_of(Tinybucket::Model::Page) }
35
+ end
36
+ context 'with options' do
37
+ subject { client.repos(options) }
38
+ let(:options) { {} }
39
+ it { expect(subject).to be_instance_of(Tinybucket::Model::Page) }
40
+ end
41
+ end
42
+
43
+ context 'when get repositories of the owner' do
44
+ let(:owner) { 'test_owner' }
45
+ before { stub_apiresponse(:get, request_path) }
46
+
47
+ context 'without options' do
48
+ let(:request_path) { "/repositories/#{owner}" }
49
+ subject { client.repos(owner) }
50
+ it { expect(subject).to be_instance_of(Tinybucket::Model::Page) }
51
+ end
52
+ context 'with options' do
53
+ let(:request_path) { "/repositories/#{owner}" }
54
+ subject { client.repos(owner, options) }
55
+ let(:options) { {} }
56
+ it { expect(subject).to be_instance_of(Tinybucket::Model::Page) }
57
+ end
58
+ end
59
+
60
+ context 'when invalid argument passed' do
61
+ context 'with a integer' do
62
+ subject { client.repos(20) }
63
+ it { expect { subject }.to raise_error }
64
+ end
65
+
66
+ context 'with a string and string' do
67
+ subject { client.repos('test_owner', 'test_repository') }
68
+ it { expect { subject }.to raise_error }
69
+ end
70
+
71
+ context 'with three arguments' do
72
+ subject { client.repos('a', 'b', 'c') }
73
+ it { expect { subject }.to raise_error }
74
+ end
75
+ end
76
+ end
77
+
78
+ describe 'repo' do
79
+ let(:repo_owner) { 'test_owner' }
80
+ let(:repo_slug) { 'test_repo' }
81
+
82
+ subject { client.repo(repo_owner, repo_slug) }
83
+
84
+ it 'return RepoApi instance' do
85
+ expect(subject).to be_instance_of(Tinybucket::Model::Repository)
86
+ expect(subject.repo_owner).to eq(repo_owner)
87
+ expect(subject.repo_slug).to eq(repo_slug)
88
+ end
89
+ end
90
+
91
+ describe 'team' do
92
+ let(:team) { 'test_team' }
93
+ subject { client.team(team) }
94
+ it { expect(subject).to be_instance_of(Tinybucket::Model::Team) }
95
+ end
96
+
97
+ describe 'user' do
98
+ let(:user) { 'test_owner' }
99
+ subject { client.user(user) }
100
+ it { expect(subject).to be_instance_of(Tinybucket::Model::Profile) }
101
+ end
102
+ end
@@ -0,0 +1,30 @@
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
@@ -0,0 +1,29 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe Tinybucket::Model::BranchRestriction do
4
+ include ApiResponseMacros
5
+
6
+ let(:owner) { 'test_owner' }
7
+ let(:slug) { 'test_repo' }
8
+
9
+ # TODO: fix model_json
10
+ let(:model_json) { nil }
11
+
12
+ let(:model) do
13
+ m = Tinybucket::Model::BranchRestriction.new(model_json)
14
+ m.repo_owner = owner
15
+ m.repo_slug = slug
16
+
17
+ m
18
+ end
19
+
20
+ before { stub_apiresponse(:get, request_path, stub_options) if request_path }
21
+
22
+ describe '#update' do
23
+ pending 'TODO implement method'
24
+ end
25
+
26
+ describe '#destroy' do
27
+ pending 'TODO implement method'
28
+ end
29
+ end