tinybucket 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.coveralls.yml +1 -0
- data/.gitignore +35 -0
- data/.rspec +1 -0
- data/.rubocop.yml +44 -0
- data/.travis.yml +10 -0
- data/Gemfile +22 -0
- data/Guardfile +13 -0
- data/LICENSE +21 -0
- data/README.md +237 -0
- data/Rakefile +39 -0
- data/lib/faraday_middleware/follow_oauth_redirects.rb +67 -0
- data/lib/tinybucket.rb +61 -0
- data/lib/tinybucket/api.rb +20 -0
- data/lib/tinybucket/api/base_api.rb +31 -0
- data/lib/tinybucket/api/branch_restrictions_api.rb +26 -0
- data/lib/tinybucket/api/comments_api.rb +46 -0
- data/lib/tinybucket/api/commits_api.rb +26 -0
- data/lib/tinybucket/api/diff_api.rb +17 -0
- data/lib/tinybucket/api/helper.rb +22 -0
- data/lib/tinybucket/api/helper/api_helper.rb +48 -0
- data/lib/tinybucket/api/helper/branch_restrictions_helper.rb +27 -0
- data/lib/tinybucket/api/helper/comments_helper.rb +49 -0
- data/lib/tinybucket/api/helper/commits_helper.rb +27 -0
- data/lib/tinybucket/api/helper/diff_helper.rb +29 -0
- data/lib/tinybucket/api/helper/pull_requests_helper.rb +44 -0
- data/lib/tinybucket/api/helper/repo_helper.rb +29 -0
- data/lib/tinybucket/api/helper/repos_helper.rb +21 -0
- data/lib/tinybucket/api/helper/team_helper.rb +35 -0
- data/lib/tinybucket/api/helper/user_helper.rb +31 -0
- data/lib/tinybucket/api/pull_requests_api.rb +49 -0
- data/lib/tinybucket/api/repo_api.rb +35 -0
- data/lib/tinybucket/api/repos_api.rb +19 -0
- data/lib/tinybucket/api/team_api.rb +51 -0
- data/lib/tinybucket/api/user_api.rb +44 -0
- data/lib/tinybucket/api_factory.rb +21 -0
- data/lib/tinybucket/client.rb +95 -0
- data/lib/tinybucket/connection.rb +62 -0
- data/lib/tinybucket/constants.rb +4 -0
- data/lib/tinybucket/error.rb +8 -0
- data/lib/tinybucket/error/base_error.rb +12 -0
- data/lib/tinybucket/error/service_error.rb +20 -0
- data/lib/tinybucket/model.rb +20 -0
- data/lib/tinybucket/model/base.rb +54 -0
- data/lib/tinybucket/model/branch_restriction.rb +17 -0
- data/lib/tinybucket/model/comment.rb +39 -0
- data/lib/tinybucket/model/commit.rb +39 -0
- data/lib/tinybucket/model/concerns.rb +14 -0
- data/lib/tinybucket/model/concerns/reloadable.rb +45 -0
- data/lib/tinybucket/model/concerns/repository_keys.rb +43 -0
- data/lib/tinybucket/model/error_response.rb +7 -0
- data/lib/tinybucket/model/page.rb +65 -0
- data/lib/tinybucket/model/profile.rb +37 -0
- data/lib/tinybucket/model/pull_request.rb +64 -0
- data/lib/tinybucket/model/repository.rb +96 -0
- data/lib/tinybucket/model/team.rb +39 -0
- data/lib/tinybucket/parser.rb +25 -0
- data/lib/tinybucket/parser/base_parser.rb +17 -0
- data/lib/tinybucket/parser/branch_restriction_parser.rb +9 -0
- data/lib/tinybucket/parser/branch_restrictions_parser.rb +10 -0
- data/lib/tinybucket/parser/comment_parser.rb +9 -0
- data/lib/tinybucket/parser/comments_parser.rb +10 -0
- data/lib/tinybucket/parser/commit_parser.rb +9 -0
- data/lib/tinybucket/parser/commits_parser.rb +9 -0
- data/lib/tinybucket/parser/profile_parser.rb +9 -0
- data/lib/tinybucket/parser/profiles_parser.rb +9 -0
- data/lib/tinybucket/parser/pull_request_parser.rb +9 -0
- data/lib/tinybucket/parser/pull_requests_parser.rb +10 -0
- data/lib/tinybucket/parser/repo_parser.rb +9 -0
- data/lib/tinybucket/parser/repos_parser.rb +10 -0
- data/lib/tinybucket/parser/team_parser.rb +9 -0
- data/lib/tinybucket/parser/teams_parser.rb +9 -0
- data/lib/tinybucket/request.rb +55 -0
- data/lib/tinybucket/response.rb +7 -0
- data/lib/tinybucket/response/error_handler.rb +14 -0
- data/lib/tinybucket/version.rb +3 -0
- data/spec/fixtures/commit.json +83 -0
- data/spec/fixtures/profile.json +29 -0
- data/spec/fixtures/pull_request.json +106 -0
- data/spec/fixtures/repositories/get.json +78 -0
- data/spec/fixtures/repositories/test_owner/get.json +78 -0
- data/spec/fixtures/repositories/test_owner/test_repo/branch-restrictions/1/get.json +17 -0
- data/spec/fixtures/repositories/test_owner/test_repo/branch-restrictions/get.json +101 -0
- data/spec/fixtures/repositories/test_owner/test_repo/commit/1/comments/1/get.json +38 -0
- data/spec/fixtures/repositories/test_owner/test_repo/commit/1/comments/get.json +40 -0
- data/spec/fixtures/repositories/test_owner/test_repo/commit/1/get.json +83 -0
- data/spec/fixtures/repositories/test_owner/test_repo/commits/get.json +73 -0
- data/spec/fixtures/repositories/test_owner/test_repo/diff/1/get.json +21 -0
- data/spec/fixtures/repositories/test_owner/test_repo/forks/get.json +78 -0
- data/spec/fixtures/repositories/test_owner/test_repo/get.json +71 -0
- data/spec/fixtures/repositories/test_owner/test_repo/patch/1/get.json +29 -0
- data/spec/fixtures/repositories/test_owner/test_repo/pullrequests/1/approve/delete.json +3 -0
- data/spec/fixtures/repositories/test_owner/test_repo/pullrequests/1/approve/post.json +3 -0
- data/spec/fixtures/repositories/test_owner/test_repo/pullrequests/1/comments/1/get.json +30 -0
- data/spec/fixtures/repositories/test_owner/test_repo/pullrequests/1/comments/get.json +44 -0
- data/spec/fixtures/repositories/test_owner/test_repo/pullrequests/1/commits/get.json +66 -0
- data/spec/fixtures/repositories/test_owner/test_repo/pullrequests/1/diff/get.txt +13 -0
- data/spec/fixtures/repositories/test_owner/test_repo/pullrequests/1/get.json +164 -0
- data/spec/fixtures/repositories/test_owner/test_repo/pullrequests/get.json +112 -0
- data/spec/fixtures/repositories/test_owner/test_repo/pullrequests/get_state_declined.json +112 -0
- data/spec/fixtures/repositories/test_owner/test_repo/pullrequests/get_state_merged.json +112 -0
- data/spec/fixtures/repositories/test_owner/test_repo/pullrequests/get_state_open.json +112 -0
- data/spec/fixtures/repositories/test_owner/test_repo/watchers/get.json +32 -0
- data/spec/fixtures/repository.json +71 -0
- data/spec/fixtures/teams/test_team/followers/get.json +36 -0
- data/spec/fixtures/teams/test_team/following/get.json +39 -0
- data/spec/fixtures/teams/test_team/get.json +32 -0
- data/spec/fixtures/teams/test_team/members/get.json +36 -0
- data/spec/fixtures/teams/test_team/repositories/get.json +125 -0
- data/spec/fixtures/users/test_owner/followers/get.json +65 -0
- data/spec/fixtures/users/test_owner/following/get.json +100 -0
- data/spec/fixtures/users/test_owner/get.json +29 -0
- data/spec/lib/tinybucket/api/branch_restrictions_api_spec.rb +78 -0
- data/spec/lib/tinybucket/api/comments_api_spec.rb +133 -0
- data/spec/lib/tinybucket/api/commits_api_spec.rb +63 -0
- data/spec/lib/tinybucket/api/diff_api_spec.rb +5 -0
- data/spec/lib/tinybucket/api/pull_requests_api_spec.rb +229 -0
- data/spec/lib/tinybucket/api/repo_api_spec.rb +100 -0
- data/spec/lib/tinybucket/api/repos_api_spec.rb +28 -0
- data/spec/lib/tinybucket/api/team_api_spec.rb +87 -0
- data/spec/lib/tinybucket/api/user_api_spec.rb +60 -0
- data/spec/lib/tinybucket/api_factory_spec.rb +23 -0
- data/spec/lib/tinybucket/client_spec.rb +102 -0
- data/spec/lib/tinybucket/connection_spec.rb +30 -0
- data/spec/lib/tinybucket/model/branch_restriction_spec.rb +29 -0
- data/spec/lib/tinybucket/model/comment_spec.rb +31 -0
- data/spec/lib/tinybucket/model/commit_spec.rb +62 -0
- data/spec/lib/tinybucket/model/page_spec.rb +58 -0
- data/spec/lib/tinybucket/model/profile_spec.rb +47 -0
- data/spec/lib/tinybucket/model/pull_request_spec.rb +122 -0
- data/spec/lib/tinybucket/model/repository_spec.rb +131 -0
- data/spec/lib/tinybucket/model/team_spec.rb +53 -0
- data/spec/lib/tinybucket_spec.rb +32 -0
- data/spec/spec_helper.rb +42 -0
- data/spec/support/api_response_macros.rb +30 -0
- data/spec/support/model_macros.rb +61 -0
- data/tinybucket.gemspec +36 -0
- metadata +437 -0
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe Tinybucket::Model::Comment do
|
4
|
+
include ApiResponseMacros
|
5
|
+
include ModelMacros
|
6
|
+
|
7
|
+
let(:owner) { 'test_owner' }
|
8
|
+
let(:slug) { 'test_repo' }
|
9
|
+
|
10
|
+
let(:commit) do
|
11
|
+
m = Tinybucket::Model::Commit.new({})
|
12
|
+
m.repo_owner = owner
|
13
|
+
m.repo_slug = slug
|
14
|
+
m.hash = '1'
|
15
|
+
m
|
16
|
+
end
|
17
|
+
|
18
|
+
describe 'model can reloadable' do
|
19
|
+
let(:comment) do
|
20
|
+
m = Tinybucket::Model::Comment.new({})
|
21
|
+
m.repo_owner = owner
|
22
|
+
m.repo_slug = slug
|
23
|
+
m.commented_to = commit
|
24
|
+
m.id = '1'
|
25
|
+
m
|
26
|
+
end
|
27
|
+
|
28
|
+
before { @model = commit }
|
29
|
+
it_behaves_like 'the model is reloadable'
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe Tinybucket::Model::Commit do
|
4
|
+
include ApiResponseMacros
|
5
|
+
include ModelMacros
|
6
|
+
|
7
|
+
let(:owner) { 'test_owner' }
|
8
|
+
let(:slug) { 'test_repo' }
|
9
|
+
|
10
|
+
let(:model) do
|
11
|
+
json = JSON.load(File.read('spec/fixtures/commit.json'))
|
12
|
+
m = Tinybucket::Model::Commit.new(json)
|
13
|
+
m.repo_owner = owner
|
14
|
+
m.repo_slug = slug
|
15
|
+
m.hash = '1'
|
16
|
+
|
17
|
+
m
|
18
|
+
end
|
19
|
+
|
20
|
+
let(:request_path) { nil }
|
21
|
+
|
22
|
+
before { stub_apiresponse(:get, request_path) if request_path }
|
23
|
+
|
24
|
+
describe 'model can reloadable' do
|
25
|
+
let(:commit) do
|
26
|
+
m = Tinybucket::Model::Commit.new({})
|
27
|
+
m.repo_owner = owner
|
28
|
+
m.repo_slug = slug
|
29
|
+
m.hash = '1'
|
30
|
+
m
|
31
|
+
end
|
32
|
+
before { @model = commit }
|
33
|
+
it_behaves_like 'the model is reloadable'
|
34
|
+
end
|
35
|
+
|
36
|
+
describe '#comments' do
|
37
|
+
let(:request_path) do
|
38
|
+
"/repositories/#{owner}/#{slug}/commit/1/comments"
|
39
|
+
end
|
40
|
+
subject { model.comments }
|
41
|
+
it { expect(subject).to be_an_instance_of(Tinybucket::Model::Page) }
|
42
|
+
end
|
43
|
+
|
44
|
+
describe '#comment' do
|
45
|
+
let(:comment_id) { '1' }
|
46
|
+
let(:request_path) do
|
47
|
+
"/repositories/#{owner}/#{slug}/commit/1/comments/#{comment_id}"
|
48
|
+
end
|
49
|
+
subject { model.comment(comment_id) }
|
50
|
+
it 'return Comment' do
|
51
|
+
expect(subject).to be_an_instance_of(Tinybucket::Model::Comment)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
describe '#approve' do
|
56
|
+
pending 'TODO implement method'
|
57
|
+
end
|
58
|
+
|
59
|
+
describe '#unapprove' do
|
60
|
+
pending 'TODO implement method'
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe Tinybucket::Model::Page do
|
4
|
+
|
5
|
+
let(:json) do
|
6
|
+
text = File.read('spec/fixtures/repositories/get.json')
|
7
|
+
JSON.parse(text)
|
8
|
+
end
|
9
|
+
|
10
|
+
let(:klass) { Tinybucket::Model::Repository }
|
11
|
+
let(:model) { Tinybucket::Model::Page.new(json, klass) }
|
12
|
+
|
13
|
+
describe 'initialize' do
|
14
|
+
subject { model }
|
15
|
+
|
16
|
+
it 'create instance' do
|
17
|
+
expect(subject).to be_an_instance_of(Tinybucket::Model::Page)
|
18
|
+
|
19
|
+
expect(subject.attrs[:size]).to eq(json['size'])
|
20
|
+
expect(subject.attrs[:page]).to eq(json['page'])
|
21
|
+
expect(subject.attrs[:pagelen]).to eq(json['pagelen'])
|
22
|
+
expect(subject.attrs[:next]).to eq(json['next'])
|
23
|
+
expect(subject.attrs[:previous]).to eq(json['previous'])
|
24
|
+
|
25
|
+
expect(subject.items.size).to eq(json['values'].size)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
describe 'size' do
|
30
|
+
subject { model.size }
|
31
|
+
|
32
|
+
let(:base_json) do
|
33
|
+
text = File.read('spec/fixtures/repositories/get.json')
|
34
|
+
JSON.parse(text)
|
35
|
+
end
|
36
|
+
|
37
|
+
context 'when json contains size = nil' do
|
38
|
+
let(:json) do
|
39
|
+
base_json['size'] = nil
|
40
|
+
base_json
|
41
|
+
end
|
42
|
+
it { expect(subject).to be_nil }
|
43
|
+
end
|
44
|
+
|
45
|
+
context 'when json contains size' do
|
46
|
+
let(:size) { 1000 }
|
47
|
+
let(:json) do
|
48
|
+
base_json['size'] = size
|
49
|
+
base_json
|
50
|
+
end
|
51
|
+
it { expect(subject).to eq(size) }
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
describe 'each' do
|
56
|
+
pending 'TODO add specs'
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe Tinybucket::Model::Profile do
|
4
|
+
include ApiResponseMacros
|
5
|
+
include ModelMacros
|
6
|
+
|
7
|
+
let(:username) { 'test_owner' }
|
8
|
+
|
9
|
+
let(:model_json) { JSON.load(File.read('spec/fixtures/profile.json')) }
|
10
|
+
let(:model) do
|
11
|
+
m = Tinybucket::Model::Profile.new(model_json)
|
12
|
+
m.username = username
|
13
|
+
m
|
14
|
+
end
|
15
|
+
|
16
|
+
let(:request_path) { nil }
|
17
|
+
|
18
|
+
before { stub_apiresponse(:get, request_path) if request_path }
|
19
|
+
|
20
|
+
describe 'model can reloadable' do
|
21
|
+
let(:profile) do
|
22
|
+
m = Tinybucket::Model::Profile.new({})
|
23
|
+
m.username = username
|
24
|
+
m
|
25
|
+
end
|
26
|
+
before { @model = profile }
|
27
|
+
it_behaves_like 'the model is reloadable'
|
28
|
+
end
|
29
|
+
|
30
|
+
describe 'followers' do
|
31
|
+
let(:request_path) { "/users/#{username}/followers" }
|
32
|
+
subject { model.followers() }
|
33
|
+
it { expect(subject).to be_an_instance_of(Tinybucket::Model::Page) }
|
34
|
+
end
|
35
|
+
|
36
|
+
describe 'following' do
|
37
|
+
let(:request_path) { "/users/#{username}/following" }
|
38
|
+
subject { model.following }
|
39
|
+
it { expect(subject).to be_an_instance_of(Tinybucket::Model::Page) }
|
40
|
+
end
|
41
|
+
|
42
|
+
describe 'repos' do
|
43
|
+
let(:request_path) { "/repositories/#{username}" }
|
44
|
+
subject { model.repos }
|
45
|
+
it { expect(subject).to be_an_instance_of(Tinybucket::Model::Page) }
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,122 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe Tinybucket::Model::PullRequest do
|
4
|
+
include ApiResponseMacros
|
5
|
+
include ModelMacros
|
6
|
+
|
7
|
+
let(:model_json) { JSON.load(File.read('spec/fixtures/pull_request.json')) }
|
8
|
+
|
9
|
+
let(:request_method) { :get }
|
10
|
+
let(:request_path) { nil }
|
11
|
+
|
12
|
+
let(:owner) { 'test_owner' }
|
13
|
+
let(:slug) { 'test_repo' }
|
14
|
+
|
15
|
+
let(:model) do
|
16
|
+
pr = Tinybucket::Model::PullRequest.new(model_json)
|
17
|
+
pr.repo_owner = owner
|
18
|
+
pr.repo_slug = slug
|
19
|
+
pr.id = 1
|
20
|
+
|
21
|
+
pr
|
22
|
+
end
|
23
|
+
|
24
|
+
let(:stub_options) { nil }
|
25
|
+
|
26
|
+
before do
|
27
|
+
if request_path
|
28
|
+
opts = stub_options.present? ? stub_options : {}
|
29
|
+
stub_apiresponse(request_method, request_path, opts)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
describe 'model can reloadable' do
|
34
|
+
let(:pr) do
|
35
|
+
m = Tinybucket::Model::PullRequest.new({})
|
36
|
+
m.repo_owner = owner
|
37
|
+
m.repo_slug = slug
|
38
|
+
m.id = 1
|
39
|
+
m
|
40
|
+
end
|
41
|
+
before { @model = pr }
|
42
|
+
it_behaves_like 'the model is reloadable'
|
43
|
+
end
|
44
|
+
|
45
|
+
describe '#create' do
|
46
|
+
pending 'TODO implement method'
|
47
|
+
end
|
48
|
+
|
49
|
+
describe '#update' do
|
50
|
+
pending 'TODO implement method'
|
51
|
+
end
|
52
|
+
|
53
|
+
describe 'approve' do
|
54
|
+
let(:request_method) { :post }
|
55
|
+
let(:request_path) do
|
56
|
+
"/repositories/#{owner}/#{slug}/pullrequests/1/approve"
|
57
|
+
end
|
58
|
+
|
59
|
+
subject { model.approve }
|
60
|
+
|
61
|
+
it { expect(subject).to be_truthy }
|
62
|
+
end
|
63
|
+
|
64
|
+
describe 'unapprove' do
|
65
|
+
let(:request_method) { :delete }
|
66
|
+
let(:request_path) do
|
67
|
+
"/repositories/#{owner}/#{slug}/pullrequests/1/approve"
|
68
|
+
end
|
69
|
+
|
70
|
+
subject { model.unapprove }
|
71
|
+
|
72
|
+
it { expect(subject).to be_truthy }
|
73
|
+
end
|
74
|
+
|
75
|
+
describe 'commits' do
|
76
|
+
let(:request_path) do
|
77
|
+
"/repositories/#{owner}/#{slug}/pullrequests/1/commits"
|
78
|
+
end
|
79
|
+
|
80
|
+
subject { model.commits() }
|
81
|
+
|
82
|
+
it { expect(subject).to be_an_instance_of(Tinybucket::Model::Page) }
|
83
|
+
end
|
84
|
+
|
85
|
+
describe 'comments' do
|
86
|
+
let(:request_path) do
|
87
|
+
"/repositories/#{owner}/#{slug}/pullrequests/1/comments"
|
88
|
+
end
|
89
|
+
|
90
|
+
subject { model.comments }
|
91
|
+
|
92
|
+
it 'return comment list' do
|
93
|
+
expect(subject).to be_an_instance_of(Tinybucket::Model::Page)
|
94
|
+
subject.items.each do |comment|
|
95
|
+
expect(comment.commented_to).to eq(model)
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
describe 'comment' do
|
101
|
+
let(:comment_id) { '1' }
|
102
|
+
let(:request_path) do
|
103
|
+
"/repositories/#{owner}/#{slug}/pullrequests/1/comments/#{comment_id}"
|
104
|
+
end
|
105
|
+
subject { model.comment(comment_id) }
|
106
|
+
|
107
|
+
it 'return the comment' do
|
108
|
+
expect(subject).to be_an_instance_of(Tinybucket::Model::Comment)
|
109
|
+
expect(subject.commented_to).to eq(model)
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
describe 'diff' do
|
114
|
+
let(:stub_options) { { content_type: 'plain/text' } }
|
115
|
+
subject { model.diff }
|
116
|
+
let(:request_path) do
|
117
|
+
"/repositories/#{owner}/#{slug}/pullrequests/1/diff"
|
118
|
+
end
|
119
|
+
it { expect(subject).to be_instance_of(String) }
|
120
|
+
|
121
|
+
end
|
122
|
+
end
|
@@ -0,0 +1,131 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe Tinybucket::Model::Repository do
|
4
|
+
include ApiResponseMacros
|
5
|
+
include ModelMacros
|
6
|
+
|
7
|
+
let(:owner) { 'test_owner' }
|
8
|
+
let(:slug) { 'test_repo' }
|
9
|
+
|
10
|
+
let(:model_json) { JSON.load(File.read('spec/fixtures/repository.json')) }
|
11
|
+
let(:model) do
|
12
|
+
m = Tinybucket::Model::Repository.new(model_json)
|
13
|
+
m.repo_owner = owner
|
14
|
+
m.repo_slug = slug
|
15
|
+
|
16
|
+
m
|
17
|
+
end
|
18
|
+
let(:request_path) { nil }
|
19
|
+
let(:stub_options) { {} }
|
20
|
+
|
21
|
+
before { stub_apiresponse(:get, request_path, stub_options) if request_path }
|
22
|
+
|
23
|
+
describe 'model can reloadable' do
|
24
|
+
let(:repo) do
|
25
|
+
m = Tinybucket::Model::Repository.new({})
|
26
|
+
m.repo_owner = owner
|
27
|
+
m.repo_slug = slug
|
28
|
+
m
|
29
|
+
end
|
30
|
+
before { @model = repo }
|
31
|
+
it_behaves_like 'the model is reloadable'
|
32
|
+
end
|
33
|
+
|
34
|
+
describe '#create' do
|
35
|
+
pending 'TODO implement method'
|
36
|
+
end
|
37
|
+
|
38
|
+
describe '#destroy' do
|
39
|
+
pending 'TODO implement method'
|
40
|
+
end
|
41
|
+
|
42
|
+
describe '#pull_requests' do
|
43
|
+
let(:request_path) do
|
44
|
+
"/repositories/#{owner}/#{slug}/pullrequests"
|
45
|
+
end
|
46
|
+
|
47
|
+
subject { model.pull_requests() }
|
48
|
+
|
49
|
+
it { expect(subject).to be_an_instance_of(Tinybucket::Model::Page) }
|
50
|
+
end
|
51
|
+
|
52
|
+
describe '#pull_request' do
|
53
|
+
let(:prid) { 1 }
|
54
|
+
|
55
|
+
describe 'with pull_request_id' do
|
56
|
+
subject { model.pull_request(prid) }
|
57
|
+
let(:request_path) do
|
58
|
+
"/repositories/#{owner}/#{slug}/pullrequests/#{prid}"
|
59
|
+
end
|
60
|
+
it 'return the specific pull_request model' do
|
61
|
+
expect(subject).to be_an_instance_of(Tinybucket::Model::PullRequest)
|
62
|
+
expect(subject.id).to eq(prid)
|
63
|
+
end
|
64
|
+
end
|
65
|
+
describe 'without pull_request_id' do
|
66
|
+
subject { model.pull_request }
|
67
|
+
it 'return new pull_request model' do
|
68
|
+
expect(subject).to be_an_instance_of(Tinybucket::Model::PullRequest)
|
69
|
+
expect(subject.id).to be_nil
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
describe '#watchers' do
|
75
|
+
let(:request_path) { "/repositories/#{owner}/#{slug}/watchers" }
|
76
|
+
subject { model.watchers }
|
77
|
+
it { expect(subject).to be_an_instance_of(Tinybucket::Model::Page) }
|
78
|
+
end
|
79
|
+
|
80
|
+
describe '#forks' do
|
81
|
+
let(:request_path) { "/repositories/#{owner}/#{slug}/forks" }
|
82
|
+
subject { model.forks }
|
83
|
+
it { expect(subject).to be_an_instance_of(Tinybucket::Model::Page) }
|
84
|
+
end
|
85
|
+
|
86
|
+
describe '#commits' do
|
87
|
+
let(:request_path) { "/repositories/#{owner}/#{slug}/commits" }
|
88
|
+
subject { model.commits }
|
89
|
+
it { expect(subject).to be_an_instance_of(Tinybucket::Model::Page) }
|
90
|
+
end
|
91
|
+
|
92
|
+
describe '#commit' do
|
93
|
+
let(:revision) { '1' }
|
94
|
+
let(:request_path) { "/repositories/#{owner}/#{slug}/commit/#{revision}" }
|
95
|
+
subject { model.commit(revision) }
|
96
|
+
it { expect(subject).to be_an_instance_of(Tinybucket::Model::Commit) }
|
97
|
+
end
|
98
|
+
|
99
|
+
describe '#branch_restrictions' do
|
100
|
+
let(:request_path) { "/repositories/#{owner}/#{slug}/branch-restrictions" }
|
101
|
+
subject { model.branch_restrictions }
|
102
|
+
it { expect(subject).to be_an_instance_of(Tinybucket::Model::Page) }
|
103
|
+
end
|
104
|
+
|
105
|
+
describe '#branch_restriction' do
|
106
|
+
let(:restriction_id) { '1' }
|
107
|
+
let(:request_path) do
|
108
|
+
"/repositories/#{owner}/#{slug}/branch-restrictions/#{restriction_id}"
|
109
|
+
end
|
110
|
+
subject { model.branch_restriction(restriction_id) }
|
111
|
+
it 'return BranchRestriction model' do
|
112
|
+
expect(subject).to be_an_instance_of(Tinybucket::Model::BranchRestriction)
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
describe '#diff' do
|
117
|
+
let(:diff_spec) { '1' }
|
118
|
+
let(:request_path) { "/repositories/#{owner}/#{slug}/diff/#{diff_spec}" }
|
119
|
+
let(:stub_options) { { content_type: 'text/plain' } }
|
120
|
+
subject { model.diff(diff_spec) }
|
121
|
+
it { expect(subject).to be_an_instance_of(String) }
|
122
|
+
end
|
123
|
+
|
124
|
+
describe '#patch' do
|
125
|
+
let(:patch_spec) { '1' }
|
126
|
+
let(:request_path) { "/repositories/#{owner}/#{slug}/patch/#{patch_spec}" }
|
127
|
+
let(:stub_options) { { content_type: 'text/plain' } }
|
128
|
+
subject { model.patch(patch_spec) }
|
129
|
+
it { expect(subject).to be_an_instance_of(String) }
|
130
|
+
end
|
131
|
+
end
|