github_api 0.8.4 → 0.8.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,84 @@
1
+
2
+ # encoding: utf-8
3
+
4
+ require 'spec_helper'
5
+
6
+ describe Github::Issues::Events, '#list' do
7
+ let(:user) { 'peter-murach' }
8
+ let(:repo) { 'github' }
9
+ let(:issue_id) { 1 }
10
+ let(:request_path) { "/repos/#{user}/#{repo}/issues/events" }
11
+
12
+ before {
13
+ stub_get(request_path).to_return(:body => body, :status => status,
14
+ :headers => {:content_type => "application/json; charset=utf-8"})
15
+ }
16
+
17
+ after { reset_authentication_for(subject) }
18
+
19
+ context 'without issue_id' do
20
+ let(:body) { fixture('issues/events.json') }
21
+ let(:status) { 200 }
22
+
23
+ context "resource found" do
24
+
25
+ it { subject.should respond_to :all }
26
+
27
+ it "should fail to get resource without username" do
28
+ expect { subject.list }.to raise_error(ArgumentError)
29
+ end
30
+
31
+ it "should get the resources" do
32
+ subject.list user, repo
33
+ a_get(request_path).should have_been_made
34
+ end
35
+
36
+ it_should_behave_like 'an array of resources' do
37
+ let(:requestable) { subject.list user, repo }
38
+ end
39
+
40
+ it "should get issue information" do
41
+ events = subject.list user, repo
42
+ events.first.actor.login.should == 'octocat'
43
+ end
44
+
45
+ it "should yield to a block" do
46
+ yielded = []
47
+ result = subject.list(user, repo) { |obj| yielded << obj }
48
+ yielded.should == result
49
+ end
50
+ end
51
+
52
+ it_should_behave_like 'request failure' do
53
+ let(:requestable) { subject.list user, repo }
54
+ end
55
+ end # without issue_id
56
+
57
+ context 'with issue_id' do
58
+ let(:request_path) { "/repos/#{user}/#{repo}/issues/#{issue_id}/events" }
59
+ let(:body) { fixture('issues/events.json') }
60
+ let(:status) { 200 }
61
+
62
+ context "resource found" do
63
+ it "should get the resources" do
64
+ subject.list user, repo, :issue_id => issue_id
65
+ a_get(request_path).should have_been_made
66
+ end
67
+
68
+ it_should_behave_like 'an array of resources' do
69
+ let(:requestable) { subject.list user, repo, :issue_id => issue_id }
70
+ end
71
+
72
+ it "should get issue information" do
73
+ events = subject.list user, repo, :issue_id => issue_id
74
+ events.first.actor.login.should == 'octocat'
75
+ end
76
+
77
+ it "should yield to a block" do
78
+ yielded = []
79
+ result = subject.list(user, repo, :issue_id => issue_id) { |obj| yielded << obj }
80
+ yielded.should == result
81
+ end
82
+ end
83
+ end # with issue_id
84
+ end # list
@@ -3,160 +3,5 @@
3
3
  require 'spec_helper'
4
4
 
5
5
  describe Github::Issues::Events do
6
- let(:github) { Github.new }
7
- let(:user) { 'peter-murach' }
8
- let(:repo) { 'github' }
9
- let(:issue_id) { 1 }
10
-
11
- after { reset_authentication_for github }
12
-
13
- describe '#list' do
14
- it { github.issues.comments.should respond_to :all }
15
-
16
- context 'without issue_id' do
17
- context "resource found" do
18
- before do
19
- stub_get("/repos/#{user}/#{repo}/issues/events").
20
- to_return(:body => fixture('issues/events.json'),
21
- :status => 200,
22
- :headers => {:content_type => "application/json; charset=utf-8"})
23
- end
24
-
25
- it "should fail to get resource without username" do
26
- expect { github.issues.events.list }.to raise_error(ArgumentError)
27
- end
28
-
29
- it "should get the resources" do
30
- github.issues.events.list user, repo
31
- a_get("/repos/#{user}/#{repo}/issues/events").should have_been_made
32
- end
33
-
34
- it "should return array of resources" do
35
- events = github.issues.events.list user, repo
36
- events.should be_an Array
37
- events.should have(1).items
38
- end
39
-
40
- it "should be a mash type" do
41
- events = github.issues.events.list user, repo
42
- events.first.should be_a Hashie::Mash
43
- end
44
-
45
- it "should get issue information" do
46
- events = github.issues.events.list user, repo
47
- events.first.actor.login.should == 'octocat'
48
- end
49
-
50
- it "should yield to a block" do
51
- github.issues.events.should_receive(:list).
52
- with(user, repo).and_yield('web')
53
- github.issues.events.list(user, repo) { |param| 'web' }.should == 'web'
54
- end
55
- end
56
-
57
- context "resource not found" do
58
- before do
59
- stub_get("/repos/#{user}/#{repo}/issues/events").
60
- to_return(:body => "", :status => [404, "Not Found"])
61
- end
62
-
63
- it "should return 404 with a message 'Not Found'" do
64
- expect {
65
- github.issues.events.list user, repo
66
- }.to raise_error(Github::Error::NotFound)
67
- end
68
- end
69
- end # without issue_id
70
-
71
- context 'with issue_id' do
72
- context "resource found" do
73
- before do
74
- stub_get("/repos/#{user}/#{repo}/issues/#{issue_id}/events").
75
- to_return(:body => fixture('issues/events.json'), :status => 200, :headers => {:content_type => "application/json; charset=utf-8"})
76
- end
77
-
78
- it "should get the resources" do
79
- github.issues.events.list user, repo, :issue_id => issue_id
80
- a_get("/repos/#{user}/#{repo}/issues/#{issue_id}/events").should have_been_made
81
- end
82
-
83
- it "should return array of resources" do
84
- events = github.issues.events.list user, repo, :issue_id => issue_id
85
- events.should be_an Array
86
- events.should have(1).items
87
- end
88
-
89
- it "should be a mash type" do
90
- events = github.issues.events.list user, repo, :issue_id => issue_id
91
- events.first.should be_a Hashie::Mash
92
- end
93
-
94
- it "should get issue information" do
95
- events = github.issues.events.list user, repo, :issue_id => issue_id
96
- events.first.actor.login.should == 'octocat'
97
- end
98
-
99
- it "should yield to a block" do
100
- github.issues.events.should_receive(:list).
101
- with(user, repo, issue_id).and_yield('web')
102
- github.issues.events.list(user, repo, issue_id) { |param| 'web' }.
103
- should == 'web'
104
- end
105
- end
106
- end # with issue_id
107
- end # list
108
-
109
- describe "#get" do
110
- let(:event_id) { 1 }
111
-
112
- it { github.issues.events.should respond_to :find }
113
-
114
- context "resource found" do
115
- before do
116
- stub_get("/repos/#{user}/#{repo}/issues/events/#{event_id}").
117
- to_return(:body => fixture('issues/event.json'),
118
- :status => 200,
119
- :headers => {:content_type => "application/json; charset=utf-8"})
120
- end
121
-
122
- it "should fail to get resource without event id" do
123
- expect {
124
- github.issues.events.get user, repo, nil
125
- }.to raise_error(ArgumentError)
126
- end
127
-
128
- it "should get the resource" do
129
- github.issues.events.get user, repo, event_id
130
- a_get("/repos/#{user}/#{repo}/issues/events/#{event_id}").
131
- should have_been_made
132
- end
133
-
134
- it "should get event information" do
135
- event = github.issues.events.get user, repo, event_id
136
- event.actor.id.should == event_id
137
- event.actor.login.should == 'octocat'
138
- end
139
-
140
- it "should return mash" do
141
- event = github.issues.events.get user, repo, event_id
142
- event.should be_a Hashie::Mash
143
- end
144
- end
145
-
146
- context "resource not found" do
147
- before do
148
- stub_get("/repos/#{user}/#{repo}/issues/events/#{event_id}").
149
- to_return(:body => fixture('issues/event.json'),
150
- :status => 404,
151
- :headers => {:content_type => "application/json; charset=utf-8"})
152
- end
153
-
154
- it "should fail to retrive resource" do
155
- expect {
156
- github.issues.events.get user, repo, event_id
157
- }.to raise_error(Github::Error::NotFound)
158
- end
159
- end
160
- end # get
161
6
 
162
7
  end # Github::Issues:Events
@@ -0,0 +1,58 @@
1
+ # encoding: utf-8
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Github::Issues::Labels, '#remove' do
6
+ let(:user) { 'peter-murach' }
7
+ let(:repo) { 'github' }
8
+ let(:issue_id) { 1 }
9
+ let(:label_id) { 1 }
10
+ let(:request_path) { "/repos/#{user}/#{repo}/issues/#{issue_id}/labels/#{label_id}" }
11
+
12
+ before {
13
+ stub_delete(request_path).to_return(:body => body, :status => status,
14
+ :headers => {:content_type => "application/json; charset=utf-8"})
15
+ }
16
+
17
+ after { reset_authentication_for(subject) }
18
+
19
+ context "remove a label from an issue" do
20
+ let(:body) { fixture('issues/labels.json') }
21
+ let(:status) { 200 }
22
+
23
+ it "should throw exception if issue-id not present" do
24
+ expect { subject.remove user, repo, nil }.to raise_error(ArgumentError)
25
+ end
26
+
27
+ it "should remove label successfully" do
28
+ subject.remove user, repo, issue_id, label_id
29
+ a_delete(request_path).should have_been_made
30
+ end
31
+
32
+ it "should return the resource" do
33
+ labels = subject.remove user, repo, issue_id, label_id
34
+ labels.first.should be_a Hashie::Mash
35
+ end
36
+
37
+ it "should get the label information" do
38
+ labels = subject.remove user, repo, issue_id, label_id
39
+ labels.first.name.should == 'bug'
40
+ end
41
+ end
42
+
43
+ context "remove all labels from an issue" do
44
+ let(:request_path) { "/repos/#{user}/#{repo}/issues/#{issue_id}/labels" }
45
+ let(:body) { '[]' }
46
+ let(:status) { 204 }
47
+
48
+ it "should remove labels successfully" do
49
+ subject.remove user, repo, issue_id
50
+ a_delete(request_path).should have_been_made
51
+ end
52
+ end
53
+
54
+ it_should_behave_like 'request failure' do
55
+ let(:requestable) { subject.remove user, repo, issue_id, label_id }
56
+ end
57
+
58
+ end # remove
@@ -0,0 +1,50 @@
1
+ # encoding: utf-8
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Github::Issues::Labels, '#replace' do
6
+ let(:user) { 'peter-murach' }
7
+ let(:repo) { 'github' }
8
+ let(:issue_id) { 1 }
9
+ let(:labels) { "Label 1" }
10
+ let(:request_path) { "/repos/#{user}/#{repo}/issues/#{issue_id}/labels" }
11
+
12
+ before {
13
+ stub_put(request_path).to_return(:body => body, :status => status,
14
+ :headers => {:content_type => "application/json; charset=utf-8"})
15
+ }
16
+
17
+ after { reset_authentication_for(subject) }
18
+
19
+
20
+ context "labels replaced" do
21
+ let(:body) { fixture('issues/labels.json') }
22
+ let(:status) { 200 }
23
+
24
+ it "should fail to add labels if issue-id is missing" do
25
+ expect {
26
+ subject.replace user, repo, nil, labels
27
+ }.to raise_error(ArgumentError)
28
+ end
29
+
30
+ it "should create resource successfully" do
31
+ subject.replace user, repo, issue_id, labels
32
+ a_put(request_path).should have_been_made
33
+ end
34
+
35
+ it "should return the resource" do
36
+ labels = subject.replace user, repo, issue_id, labels
37
+ labels.first.should be_a Hashie::Mash
38
+ end
39
+
40
+ it "should get the label information" do
41
+ labels = subject.replace user, repo, issue_id, labels
42
+ labels.first.name.should == 'bug'
43
+ end
44
+ end
45
+
46
+ it_should_behave_like 'request failure' do
47
+ let(:requestable) { subject.replace user, repo, issue_id, labels }
48
+ end
49
+
50
+ end # replace
@@ -1,118 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Github::Issues::Labels do
4
- let(:github) { Github.new }
5
- let(:user) { 'peter-murach' }
6
- let(:repo) { 'github' }
7
- let(:label_id) { 1 }
8
-
9
- after { github.user, github.repo, github.oauth_token = nil, nil, nil }
3
+ describe Github::Issues::Labels, 'integration' do
10
4
 
11
5
  it { described_class::VALID_LABEL_INPUTS.should_not be_nil }
12
6
 
13
- describe "#remove" do
14
- let(:issue_id) { 1 }
15
- let(:label_id) { 1 }
16
-
17
- context "remove a label from an issue" do
18
- before do
19
- stub_delete("/repos/#{user}/#{repo}/issues/#{issue_id}/labels/#{label_id}").
20
- to_return(:body => fixture('issues/labels.json'), :status => 200, :headers => {:content_type => "application/json; charset=utf-8"})
21
- end
22
-
23
- it "should throw exception if issue-id not present" do
24
- expect {
25
- github.issues.labels.remove user, repo, nil
26
- }.to raise_error(ArgumentError)
27
- end
28
-
29
- it "should remove label successfully" do
30
- github.issues.labels.remove user, repo, issue_id, label_id
31
- a_delete("/repos/#{user}/#{repo}/issues/#{issue_id}/labels/#{label_id}").should have_been_made
32
- end
33
-
34
- it "should return the resource" do
35
- labels = github.issues.labels.remove user, repo, issue_id, label_id
36
- labels.first.should be_a Hashie::Mash
37
- end
38
-
39
- it "should get the label information" do
40
- labels = github.issues.labels.remove user, repo, issue_id, label_id
41
- labels.first.name.should == 'bug'
42
- end
43
- end
44
-
45
- context "remove all labels from an issue" do
46
- before do
47
- stub_delete("/repos/#{user}/#{repo}/issues/#{issue_id}/labels").
48
- to_return(:body => "", :status => 204, :headers => {:content_type => "application/json; charset=utf-8"})
49
- end
50
-
51
- it "should remove labels successfully" do
52
- github.issues.labels.remove user, repo, issue_id
53
- a_delete("/repos/#{user}/#{repo}/issues/#{issue_id}/labels").should have_been_made
54
- end
55
- end
56
-
57
- context "failed to remove label from an issue" do
58
- before do
59
- stub_delete("/repos/#{user}/#{repo}/issues/#{issue_id}/labels/#{label_id}").
60
- to_return(:body => fixture('issues/label.json'), :status => 404, :headers => {:content_type => "application/json; charset=utf-8"})
61
- end
62
-
63
- it "should faile to retrieve resource" do
64
- expect {
65
- github.issues.labels.remove user, repo, issue_id, label_id
66
- }.to raise_error(Github::Error::NotFound)
67
- end
68
- end
69
- end # remove
70
-
71
- describe "#replace" do
72
- let(:issue_id) { 1 }
73
- let(:labels) { "Label 1" }
74
-
75
- context "labels added" do
76
- before do
77
- stub_put("/repos/#{user}/#{repo}/issues/#{issue_id}/labels").
78
- to_return(:body => fixture('issues/labels.json'), :status => 200, :headers => {:content_type => "application/json; charset=utf-8"})
79
- end
80
-
81
- it "should fail to add labels if issue-id is missing" do
82
- expect {
83
- github.issues.labels.replace user, repo, nil, labels
84
- }.to raise_error(ArgumentError)
85
- end
86
-
87
- it "should create resource successfully" do
88
- github.issues.labels.replace user, repo, issue_id, labels
89
- a_put("/repos/#{user}/#{repo}/issues/#{issue_id}/labels").should have_been_made
90
- end
91
-
92
- it "should return the resource" do
93
- labels = github.issues.labels.replace user, repo, issue_id, labels
94
- labels.first.should be_a Hashie::Mash
95
- end
96
-
97
- it "should get the label information" do
98
- labels = github.issues.labels.replace user, repo, issue_id, labels
99
- labels.first.name.should == 'bug'
100
- end
101
- end
102
-
103
- context "failed to add labels" do
104
- before do
105
- stub_put("/repos/#{user}/#{repo}/issues/#{issue_id}/labels").
106
- to_return(:body => fixture('issues/label.json'), :status => 404, :headers => {:content_type => "application/json; charset=utf-8"})
107
-
108
- end
109
-
110
- it "should fail to retrieve resource" do
111
- expect {
112
- github.issues.labels.replace user, repo, issue_id, labels
113
- }.to raise_error(Github::Error::NotFound)
114
- end
115
- end
116
- end # replace
117
-
118
7
  end # Github::Issues::Labels