bamboo-client 0.0.8 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
@@ -16,14 +16,13 @@ Feature: Bamboo REST client
16
16
  Then I should get a list of projects
17
17
  And all projects should have a key
18
18
 
19
- Scenario: Fetch all builds
20
- When I fetch all builds
21
- Then I should get a list of builds
22
- And all builds should have a state
19
+ Scenario: Fetch all results
20
+ When I fetch all results
21
+ Then I should get a list of results
22
+ And all results should have a state
23
23
 
24
24
  Scenario: Authenticated API
25
25
  When I log in
26
26
  Then I should get a session ID
27
- When I fetch all the plans
28
- Then I should get a list of plans
29
- And all plans should have a key
27
+ When I fetch all results
28
+ Then all results should have a state
@@ -24,12 +24,17 @@ Then /^all projects should have a key$/ do
24
24
  @projects.each { |e| e.key.should be_kind_of(String) }
25
25
  end
26
26
 
27
- When /^I fetch all builds$/ do
28
- @builds = client.builds
27
+ When /^I fetch all results$/ do
28
+ @results = client.results
29
29
  end
30
30
 
31
- Then /^all builds should have a state$/ do
32
- @builds.each { |b| [:successful, :failed].should include(b.state) }
31
+ Then /^I should get a list of results$/ do
32
+ @results.should_not be_empty
33
+ @results.each { |result| result.should be_kind_of(Bamboo::Client::Rest::Result) }
34
+ end
35
+
36
+ Then /^all results should have a state$/ do
37
+ @results.each { |r| [:successful, :failed].should include(r.state) }
33
38
  end
34
39
 
35
40
  When /^I log in$/ do
@@ -38,4 +43,4 @@ end
38
43
 
39
44
  Then /^I should get a session ID$/ do
40
45
  client.cookies.has_key? :JSESSIONID
41
- end
46
+ end
@@ -41,7 +41,15 @@ module Bamboo
41
41
  end # Doc
42
42
 
43
43
  def post(path, data = {})
44
- Doc.from RestClient.post(uri_for(path), data)
44
+ resp = RestClient.post(uri_for(path), data) do |response, request, result, &block|
45
+ if [301, 302, 307].include? response.code
46
+ response.follow_redirection(request, result, &block)
47
+ else
48
+ response.return!(request, result, &block)
49
+ end
50
+ end
51
+
52
+ Doc.from resp
45
53
  end
46
54
 
47
55
  end # Xml
@@ -37,8 +37,8 @@ module Bamboo
37
37
  get("project/").auto_expand Project, @http
38
38
  end
39
39
 
40
- def builds
41
- get("build/").auto_expand Build, @http
40
+ def results
41
+ get("result/").auto_expand Result, @http
42
42
  end
43
43
 
44
44
  private
@@ -97,7 +97,7 @@ module Bamboo
97
97
  end
98
98
  end # Project
99
99
 
100
- class Build
100
+ class Result
101
101
  def initialize(data, http)
102
102
  @data = data
103
103
  @http = http
@@ -145,7 +145,7 @@ module Bamboo
145
145
  def fetch_details(expand)
146
146
  @http.get(uri, :expand => expand)
147
147
  end
148
- end # Build
148
+ end # Result
149
149
 
150
150
  class Change
151
151
  def initialize(data, http)
@@ -1,5 +1,5 @@
1
1
  module Bamboo
2
2
  module Client
3
- VERSION = "0.0.8"
3
+ VERSION = "0.0.9"
4
4
  end
5
5
  end
@@ -39,13 +39,13 @@ module Bamboo
39
39
  client.projects.should == %w[foo bar]
40
40
  end
41
41
 
42
- it "should be able to fetch builds" do
43
- document.should_receive(:auto_expand).with(Rest::Build, http).and_return %w[foo bar]
42
+ it "should be able to fetch results" do
43
+ document.should_receive(:auto_expand).with(Rest::Result, http).and_return %w[foo bar]
44
44
 
45
- http.should_receive(:get).with("/rest/api/latest/build/", nil, nil).
45
+ http.should_receive(:get).with("/rest/api/latest/result/", nil, nil).
46
46
  and_return(document)
47
47
 
48
- client.builds.should == %w[foo bar]
48
+ client.results.should == %w[foo bar]
49
49
  end
50
50
 
51
51
  describe Rest::Plan do
@@ -95,38 +95,38 @@ module Bamboo
95
95
  end
96
96
  end
97
97
 
98
- describe Rest::Build do
99
- let(:data) { json_fixture("build") }
100
- let(:build) { Rest::Build.new data, http }
98
+ describe Rest::Result do
99
+ let(:data) { json_fixture("result") }
100
+ let(:result) { Rest::Result.new data, http }
101
101
 
102
102
  it "has a key" do
103
- build.key.should == "IAD-DEFAULT-5388"
103
+ result.key.should == "IAD-DEFAULT-5388"
104
104
  end
105
105
 
106
106
  it "has a state" do
107
- build.state.should == :successful
107
+ result.state.should == :successful
108
108
  end
109
109
 
110
110
  it "has an id" do
111
- build.id.should == 8487295
111
+ result.id.should == 8487295
112
112
  end
113
113
 
114
114
  it "has a number" do
115
- build.number.should == 5388
115
+ result.number.should == 5388
116
116
  end
117
117
 
118
118
  it "has a life cycle state" do
119
- build.life_cycle_state.should == :finished
119
+ result.life_cycle_state.should == :finished
120
120
  end
121
121
 
122
122
  it "has a URL" do
123
- build.url.should == "http://localhost:8085/rest/api/latest/result/IAD-DEFAULT-5388"
123
+ result.url.should == "http://localhost:8085/rest/api/latest/result/IAD-DEFAULT-5388"
124
124
  end
125
125
 
126
126
  it "has a list of changes" do
127
127
  # TODO: arg expectation
128
- http.should_receive(:get).and_return Http::Json::Doc.new(json_fixture("build_with_changes"))
129
- build.changes.first.should be_kind_of(Rest::Change)
128
+ http.should_receive(:get).and_return Http::Json::Doc.new(json_fixture("result_with_changes"))
129
+ result.changes.first.should be_kind_of(Rest::Change)
130
130
  end
131
131
  end
132
132
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bamboo-client
3
3
  version: !ruby/object:Gem::Version
4
- hash: 15
4
+ hash: 13
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 8
10
- version: 0.0.8
9
+ - 9
10
+ version: 0.0.9
11
11
  platform: ruby
12
12
  authors:
13
13
  - Jari Bakken
@@ -144,7 +144,6 @@ files:
144
144
  - features/rest.feature
145
145
  - features/step_definitions/remote_steps.rb
146
146
  - features/step_definitions/rest_steps.rb
147
- - features/step_definitions/rest_steps.rb~
148
147
  - features/support/env.rb
149
148
  - lib/bamboo-client.rb
150
149
  - lib/bamboo-client/abstract.rb
@@ -160,13 +159,13 @@ files:
160
159
  - spec/bamboo-client/http/xml_spec.rb
161
160
  - spec/bamboo-client/remote_spec.rb
162
161
  - spec/bamboo-client/rest_spec.rb
163
- - spec/fixtures/build.json
164
162
  - spec/fixtures/build.xml
165
163
  - spec/fixtures/build_result.xml
166
- - spec/fixtures/build_with_changes.json
167
164
  - spec/fixtures/change.json
168
165
  - spec/fixtures/plan.json
169
166
  - spec/fixtures/project.json
167
+ - spec/fixtures/result.json
168
+ - spec/fixtures/result_with_changes.json
170
169
  - spec/spec_helper.rb
171
170
  homepage: ""
172
171
  licenses: []
@@ -206,19 +205,18 @@ test_files:
206
205
  - features/rest.feature
207
206
  - features/step_definitions/remote_steps.rb
208
207
  - features/step_definitions/rest_steps.rb
209
- - features/step_definitions/rest_steps.rb~
210
208
  - features/support/env.rb
211
209
  - spec/bamboo-client/client_spec.rb
212
210
  - spec/bamboo-client/http/json_spec.rb
213
211
  - spec/bamboo-client/http/xml_spec.rb
214
212
  - spec/bamboo-client/remote_spec.rb
215
213
  - spec/bamboo-client/rest_spec.rb
216
- - spec/fixtures/build.json
217
214
  - spec/fixtures/build.xml
218
215
  - spec/fixtures/build_result.xml
219
- - spec/fixtures/build_with_changes.json
220
216
  - spec/fixtures/change.json
221
217
  - spec/fixtures/plan.json
222
218
  - spec/fixtures/project.json
219
+ - spec/fixtures/result.json
220
+ - spec/fixtures/result_with_changes.json
223
221
  - spec/spec_helper.rb
224
222
  has_rdoc:
@@ -1,38 +0,0 @@
1
- When /^I fetch all the plans$/ do
2
- @plans = client.plans
3
- end
4
-
5
- Then /^I should get a list of plans$/ do
6
- @plans.should_not be_empty
7
- @plans.each { |plan| plan.should be_kind_of(Bamboo::Client::Rest::Plan) }
8
- end
9
-
10
- When /^I fetch all projects$/ do
11
- @projects = client.projects
12
- end
13
-
14
- Then /^I should get a list of projects$/ do
15
- @projects.should_not be_empty
16
- @projects.each { |pro| pro.should be_kind_of(Bamboo::Client::Rest::Project) }
17
- end
18
-
19
- Then /^all plans should have a key$/ do
20
- @plans.each { |e| e.key.should be_kind_of(String) }
21
- end
22
-
23
- Then /^all projects should have a key$/ do
24
- @projects.each { |e| e.key.should be_kind_of(String) }
25
- end
26
-
27
- When /^I fetch all builds$/ do
28
- @builds = client.builds
29
- end
30
-
31
- Then /^all builds should have a state$/ do
32
- @builds.each { |b| [:successful, :failed].should include(b.state) }
33
- end
34
-
35
- When /^I login to in with my credentials, (.*) and (.*)$/ do |username, password|
36
- client.login(username, password)
37
- client.cookies != nil
38
- end