build_eval 0.0.4 → 0.0.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.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/lib/build_eval/error.rb +0 -4
  3. data/lib/build_eval/http.rb +1 -5
  4. data/lib/build_eval/monitor/base.rb +2 -6
  5. data/lib/build_eval/monitor/composite.rb +0 -4
  6. data/lib/build_eval/monitor/server.rb +0 -3
  7. data/lib/build_eval/result/build_result.rb +2 -8
  8. data/lib/build_eval/result/composite_result.rb +0 -4
  9. data/lib/build_eval/result/server_result.rb +0 -4
  10. data/lib/build_eval/result/status.rb +9 -17
  11. data/lib/build_eval/server/cruise_control_response.rb +2 -6
  12. data/lib/build_eval/server/decorator.rb +3 -9
  13. data/lib/build_eval/server/invalid_selector_error.rb +0 -4
  14. data/lib/build_eval/server/jenkins.rb +0 -4
  15. data/lib/build_eval/server/team_city.rb +2 -6
  16. data/lib/build_eval/server/travis_com.rb +23 -0
  17. data/lib/build_eval/server/travis_org.rb +22 -0
  18. data/lib/build_eval/version.rb +1 -1
  19. data/lib/build_eval.rb +7 -11
  20. data/spec/lib/build_eval/error_spec.rb +4 -8
  21. data/spec/lib/build_eval/http_shared_context.rb +2 -4
  22. data/spec/lib/build_eval/http_spec.rb +30 -50
  23. data/spec/lib/build_eval/monitor/base_spec.rb +3 -7
  24. data/spec/lib/build_eval/monitor/composite_spec.rb +5 -9
  25. data/spec/lib/build_eval/monitor/server_spec.rb +6 -10
  26. data/spec/lib/build_eval/result/build_result_spec.rb +19 -30
  27. data/spec/lib/build_eval/result/composite_result_spec.rb +10 -18
  28. data/spec/lib/build_eval/result/server_result_spec.rb +14 -26
  29. data/spec/lib/build_eval/result/status_spec.rb +35 -73
  30. data/spec/lib/build_eval/server/cruise_control_response_spec.rb +33 -41
  31. data/spec/lib/build_eval/server/decorator_spec.rb +17 -31
  32. data/spec/lib/build_eval/server/invalid_selector_error_spec.rb +7 -11
  33. data/spec/lib/build_eval/server/jenkins_integration_spec.rb +10 -15
  34. data/spec/lib/build_eval/server/jenkins_spec.rb +17 -24
  35. data/spec/lib/build_eval/server/server_shared_examples.rb +3 -7
  36. data/spec/lib/build_eval/server/team_city_integration_spec.rb +18 -27
  37. data/spec/lib/build_eval/server/team_city_spec.rb +13 -20
  38. data/spec/lib/build_eval/server/travis_com_spec.rb +91 -0
  39. data/spec/lib/build_eval/server/travis_org_spec.rb +71 -0
  40. data/spec/lib/build_eval_smoke_spec.rb +11 -10
  41. data/spec/lib/build_eval_spec.rb +8 -16
  42. data/spec/spec_helper.rb +4 -4
  43. metadata +33 -18
  44. data/lib/build_eval/server/travis.rb +0 -23
  45. data/spec/lib/build_eval/server/travis_integration_spec.rb +0 -53
  46. data/spec/lib/build_eval/server/travis_spec.rb +0 -70
@@ -0,0 +1,91 @@
1
+ describe BuildEval::Server::TravisCom do
2
+ include_context 'stubbed http interactions'
3
+
4
+ let(:username) { 'some_username' }
5
+ let(:github_token) { 'ABCD1234' }
6
+ let(:constructor_args) do
7
+ {
8
+ username: username,
9
+ github_token: github_token
10
+ }
11
+ end
12
+
13
+ let(:travis_server) { described_class.new(constructor_args) }
14
+
15
+ before(:example) do
16
+ allow(Travis::Pro).to receive(:github_auth)
17
+ end
18
+
19
+ describe '#initialize' do
20
+ subject { described_class.new(constructor_args) }
21
+
22
+ it 'should set the github auth token' do
23
+ expect(Travis::Pro).to receive(:github_auth).with(github_token)
24
+
25
+ subject
26
+ end
27
+ end
28
+
29
+ describe '#build_result' do
30
+ let(:build_name) { 'some_build_name' }
31
+ let(:travis_repository) { instance_double(Travis::Client::Repository) }
32
+ let(:travis_build) { instance_double(Travis::Client::Build) }
33
+ let(:build_result) { instance_double(BuildEval::Result::BuildResult) }
34
+
35
+ subject { travis_server.build_result(build_name) }
36
+
37
+ before(:example) do
38
+ allow(Travis::Pro::Repository).to receive(:find).and_return(travis_repository)
39
+ allow(travis_repository).to receive(:last_build).and_return(travis_build)
40
+ allow(travis_build).to receive(:failed?).and_return(false)
41
+ allow(BuildEval::Result::BuildResult).to receive(:create).and_return(build_result)
42
+ end
43
+
44
+ it 'retrieves the relevant Travis repository' do
45
+ expect(Travis::Pro::Repository).to receive(:find).with("#{username}/#{build_name}").and_return(travis_repository)
46
+
47
+ begin
48
+ subject
49
+ rescue
50
+ Exception
51
+ end
52
+ end
53
+
54
+ it 'retrieves the last build on the Travis repository' do
55
+ expect(travis_repository).to receive(:last_build).and_return(travis_build)
56
+
57
+ subject
58
+ end
59
+
60
+ it 'retrieves the build status from the build' do
61
+ expect(travis_build).to receive(:failed?).and_return(false)
62
+
63
+ subject
64
+ end
65
+
66
+ it 'creates a build result' do
67
+ expect(BuildEval::Result::BuildResult).to receive(:create).with(
68
+ build_name: "#{username}/#{build_name}",
69
+ status_name: 'Success'
70
+ ).and_return(build_result)
71
+
72
+ subject
73
+ end
74
+
75
+ it 'returns the parsed build result' do
76
+ expect(subject).to eql(build_result)
77
+ end
78
+ end
79
+
80
+ describe '#to_s' do
81
+ subject { travis_server.to_s }
82
+
83
+ it 'returns a string indicating it uses the Travis CI Org service' do
84
+ expect(subject).to include('Travis CI Com')
85
+ end
86
+
87
+ it 'returns a string containing the username' do
88
+ expect(subject).to include(username)
89
+ end
90
+ end
91
+ end
@@ -0,0 +1,71 @@
1
+ describe BuildEval::Server::TravisOrg do
2
+ include_context 'stubbed http interactions'
3
+
4
+ let(:username) { 'some_username' }
5
+ let(:constructor_args) { { username: username } }
6
+
7
+ let(:travis_server) { described_class.new(constructor_args) }
8
+
9
+ describe '#build_result' do
10
+ let(:build_name) { 'some_build_name' }
11
+ let(:travis_repository) { instance_double(Travis::Client::Repository) }
12
+ let(:travis_build) { instance_double(Travis::Client::Build) }
13
+ let(:build_result) { instance_double(BuildEval::Result::BuildResult) }
14
+
15
+ subject { travis_server.build_result(build_name) }
16
+
17
+ before(:example) do
18
+ allow(Travis::Repository).to receive(:find).and_return(travis_repository)
19
+ allow(travis_repository).to receive(:last_build).and_return(travis_build)
20
+ allow(travis_build).to receive(:failed?).and_return(false)
21
+ allow(BuildEval::Result::BuildResult).to receive(:create).and_return(build_result)
22
+ end
23
+
24
+ it 'retrieves the relevant Travis repository' do
25
+ expect(Travis::Repository).to receive(:find).with("#{username}/#{build_name}").and_return(travis_repository)
26
+
27
+ begin
28
+ subject
29
+ rescue
30
+ Exception
31
+ end
32
+ end
33
+
34
+ it 'retrieves the last build on the Travis repository' do
35
+ expect(travis_repository).to receive(:last_build).and_return(travis_build)
36
+
37
+ subject
38
+ end
39
+
40
+ it 'retrieves the build status from the build' do
41
+ expect(travis_build).to receive(:failed?).and_return(false)
42
+
43
+ subject
44
+ end
45
+
46
+ it 'creates a build result' do
47
+ expect(BuildEval::Result::BuildResult).to receive(:create).with(
48
+ build_name: "#{username}/#{build_name}",
49
+ status_name: 'Success'
50
+ ).and_return(build_result)
51
+
52
+ subject
53
+ end
54
+
55
+ it 'returns the parsed build result' do
56
+ expect(subject).to eql(build_result)
57
+ end
58
+ end
59
+
60
+ describe '#to_s' do
61
+ subject { travis_server.to_s }
62
+
63
+ it 'returns a string indicating it uses the Travis CI Org service' do
64
+ expect(subject).to include('Travis CI Org')
65
+ end
66
+
67
+ it 'returns a string containing the username' do
68
+ expect(subject).to include(username)
69
+ end
70
+ end
71
+ end
@@ -1,25 +1,26 @@
1
- describe BuildEval, "integrating with a real CI server", smoke: true do
1
+ describe BuildEval, 'integrating with a real CI server', smoke: true do
2
+ let(:server) { BuildEval.server(type: :TravisOrg, username: 'MYOB-Technology') }
2
3
 
3
- let(:server) { BuildEval.server(type: :Travis, username: "MYOB-Technology") }
4
-
5
- let(:monitor) { server.monitor("build_eval") }
6
-
7
- describe "the evaluated results from a build monitor for the server" do
4
+ let(:monitor) { server.monitor('build_eval') }
8
5
 
6
+ describe 'the evaluated results from a build monitor for the server' do
9
7
  let(:tolerated_statuses) do
10
- [ BuildEval::Result::Status::SUCCESS, BuildEval::Result::Status::UNKNOWN, BuildEval::Result::Status::FAILURE ]
8
+ [
9
+ BuildEval::Result::Status::SUCCESS,
10
+ BuildEval::Result::Status::UNKNOWN,
11
+ BuildEval::Result::Status::FAILURE,
12
+ BuildEval::Result::Status::ERROR
13
+ ]
11
14
  end
12
15
 
13
16
  subject { monitor.evaluate }
14
17
 
15
- it "indicate the builds status" do
18
+ it 'indicate the builds status' do
16
19
  expect(tolerated_statuses).to include(subject.status)
17
20
  end
18
21
 
19
22
  it "describe the build and it's status" do
20
23
  expect(subject.to_s).to match(/build_eval: (#{tolerated_statuses.map(&:to_s).join("|")})/)
21
24
  end
22
-
23
25
  end
24
-
25
26
  end
@@ -1,34 +1,30 @@
1
1
  describe BuildEval do
2
-
3
- describe "::server" do
4
-
2
+ describe '::server' do
5
3
  class BuildEval::Server::TestableServer
6
-
7
4
  def initialize(_args)
8
5
  # Intentionally blank
9
6
  end
10
-
11
7
  end
12
8
 
13
9
  let(:server_type) { :TestableServer }
14
- let(:server_arguments) { { key1: "value1", key2: "value2", key3: "value3" } }
10
+ let(:server_arguments) { { key1: 'value1', key2: 'value2', key3: 'value3' } }
15
11
  let(:args) { { type: server_type }.merge(server_arguments) }
16
12
 
17
13
  subject { described_class.server(args) }
18
14
 
19
- it "constructs an instance of the server with the provided type" do
15
+ it 'constructs an instance of the server with the provided type' do
20
16
  expect(BuildEval::Server::TestableServer).to receive(:new)
21
17
 
22
18
  subject
23
19
  end
24
20
 
25
- it "constructs the instance with additional arguments" do
21
+ it 'constructs the instance with additional arguments' do
26
22
  expect(BuildEval::Server::TestableServer).to receive(:new).with(server_arguments)
27
23
 
28
24
  subject
29
25
  end
30
26
 
31
- it "decorates the server with standard server behaviour" do
27
+ it 'decorates the server with standard server behaviour' do
32
28
  server = instance_double(BuildEval::Server::TestableServer)
33
29
  allow(BuildEval::Server::TestableServer).to receive(:new).and_return(server)
34
30
  expect(BuildEval::Server::Decorator).to receive(:new).with(server)
@@ -36,23 +32,19 @@ describe BuildEval do
36
32
  subject
37
33
  end
38
34
 
39
- it "returns the decorated server" do
35
+ it 'returns the decorated server' do
40
36
  server_decorator = instance_double(BuildEval::Server::Decorator)
41
37
  allow(BuildEval::Server::Decorator).to receive(:new).and_return(server_decorator)
42
38
 
43
39
  expect(subject).to eql(server_decorator)
44
40
  end
45
41
 
46
- context "when a server of the provided type is not found" do
47
-
42
+ context 'when a server of the provided type is not found' do
48
43
  let(:server_type) { :invalid_type }
49
44
 
50
- it "raises an error indicating the server type is invalid" do
45
+ it 'raises an error indicating the server type is invalid' do
51
46
  expect { subject }.to raise_error("Server type '#{server_type}' is invalid")
52
47
  end
53
-
54
48
  end
55
-
56
49
  end
57
-
58
50
  end
data/spec/spec_helper.rb CHANGED
@@ -1,13 +1,13 @@
1
1
  require 'bundler'
2
2
  Bundler.require(:development)
3
3
 
4
- if ENV["coverage"]
4
+ if ENV['coverage']
5
5
  CodeClimate::TestReporter.start
6
6
 
7
7
  SimpleCov.start do
8
- coverage_dir "tmp/coverage"
8
+ coverage_dir 'tmp/coverage'
9
9
 
10
- add_filter "/spec/"
10
+ add_filter '/spec/'
11
11
 
12
12
  minimum_coverage 100
13
13
  refuse_coverage_drop
@@ -16,6 +16,6 @@ end
16
16
 
17
17
  require_relative '../lib/build_eval'
18
18
 
19
- %w{ shared_examples shared_context }.each do |file_type|
19
+ %w( shared_examples shared_context ).each do |file_type|
20
20
  Dir[::File.expand_path("../**/*_#{file_type}.rb", __FILE__)].each { |file| require file }
21
21
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: build_eval
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Ueckerman
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-12-09 00:00:00.000000000 Z
12
+ date: 2016-06-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri
@@ -25,20 +25,34 @@ dependencies:
25
25
  - - "~>"
26
26
  - !ruby/object:Gem::Version
27
27
  version: '1.6'
28
+ - !ruby/object:Gem::Dependency
29
+ name: travis
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: '1.8'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '1.8'
28
42
  - !ruby/object:Gem::Dependency
29
43
  name: rake
30
44
  requirement: !ruby/object:Gem::Requirement
31
45
  requirements:
32
46
  - - "~>"
33
47
  - !ruby/object:Gem::Version
34
- version: '10.4'
48
+ version: '11.1'
35
49
  type: :development
36
50
  prerelease: false
37
51
  version_requirements: !ruby/object:Gem::Requirement
38
52
  requirements:
39
53
  - - "~>"
40
54
  - !ruby/object:Gem::Version
41
- version: '10.4'
55
+ version: '11.1'
42
56
  - !ruby/object:Gem::Dependency
43
57
  name: travis-lint
44
58
  requirement: !ruby/object:Gem::Requirement
@@ -54,19 +68,19 @@ dependencies:
54
68
  - !ruby/object:Gem::Version
55
69
  version: '2.0'
56
70
  - !ruby/object:Gem::Dependency
57
- name: metric_fu
71
+ name: rubocop
58
72
  requirement: !ruby/object:Gem::Requirement
59
73
  requirements:
60
74
  - - "~>"
61
75
  - !ruby/object:Gem::Version
62
- version: '4.12'
76
+ version: 0.40.0
63
77
  type: :development
64
78
  prerelease: false
65
79
  version_requirements: !ruby/object:Gem::Requirement
66
80
  requirements:
67
81
  - - "~>"
68
82
  - !ruby/object:Gem::Version
69
- version: '4.12'
83
+ version: 0.40.0
70
84
  - !ruby/object:Gem::Dependency
71
85
  name: rspec
72
86
  requirement: !ruby/object:Gem::Requirement
@@ -101,29 +115,29 @@ dependencies:
101
115
  requirements:
102
116
  - - "~>"
103
117
  - !ruby/object:Gem::Version
104
- version: '0.10'
118
+ version: '0.11'
105
119
  type: :development
106
120
  prerelease: false
107
121
  version_requirements: !ruby/object:Gem::Requirement
108
122
  requirements:
109
123
  - - "~>"
110
124
  - !ruby/object:Gem::Version
111
- version: '0.10'
125
+ version: '0.11'
112
126
  - !ruby/object:Gem::Dependency
113
127
  name: codeclimate-test-reporter
114
128
  requirement: !ruby/object:Gem::Requirement
115
129
  requirements:
116
130
  - - "~>"
117
131
  - !ruby/object:Gem::Version
118
- version: '0.4'
132
+ version: '0.5'
119
133
  type: :development
120
134
  prerelease: false
121
135
  version_requirements: !ruby/object:Gem::Requirement
122
136
  requirements:
123
137
  - - "~>"
124
138
  - !ruby/object:Gem::Version
125
- version: '0.4'
126
- description: Evaluates the effective status of continuous integration builds. Useful
139
+ version: '0.5'
140
+ description: Evaluates the effective status of continuous integration builds. Useful
127
141
  for subsequent display on information radiators.
128
142
  email: matthew.ueckerman@myob.com
129
143
  executables: []
@@ -145,7 +159,8 @@ files:
145
159
  - "./lib/build_eval/server/invalid_selector_error.rb"
146
160
  - "./lib/build_eval/server/jenkins.rb"
147
161
  - "./lib/build_eval/server/team_city.rb"
148
- - "./lib/build_eval/server/travis.rb"
162
+ - "./lib/build_eval/server/travis_com.rb"
163
+ - "./lib/build_eval/server/travis_org.rb"
149
164
  - "./lib/build_eval/version.rb"
150
165
  - "./spec/lib/build_eval/error_spec.rb"
151
166
  - "./spec/lib/build_eval/http_shared_context.rb"
@@ -165,8 +180,8 @@ files:
165
180
  - "./spec/lib/build_eval/server/server_shared_examples.rb"
166
181
  - "./spec/lib/build_eval/server/team_city_integration_spec.rb"
167
182
  - "./spec/lib/build_eval/server/team_city_spec.rb"
168
- - "./spec/lib/build_eval/server/travis_integration_spec.rb"
169
- - "./spec/lib/build_eval/server/travis_spec.rb"
183
+ - "./spec/lib/build_eval/server/travis_com_spec.rb"
184
+ - "./spec/lib/build_eval/server/travis_org_spec.rb"
170
185
  - "./spec/lib/build_eval_smoke_spec.rb"
171
186
  - "./spec/lib/build_eval_spec.rb"
172
187
  - "./spec/spec_helper.rb"
@@ -190,7 +205,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
190
205
  version: '0'
191
206
  requirements: []
192
207
  rubyforge_project: build_eval
193
- rubygems_version: 2.4.6
208
+ rubygems_version: 2.5.1
194
209
  signing_key:
195
210
  specification_version: 4
196
211
  summary: Evaluates the effective status of continuous integration builds
@@ -213,8 +228,8 @@ test_files:
213
228
  - "./spec/lib/build_eval/server/server_shared_examples.rb"
214
229
  - "./spec/lib/build_eval/server/team_city_integration_spec.rb"
215
230
  - "./spec/lib/build_eval/server/team_city_spec.rb"
216
- - "./spec/lib/build_eval/server/travis_integration_spec.rb"
217
- - "./spec/lib/build_eval/server/travis_spec.rb"
231
+ - "./spec/lib/build_eval/server/travis_com_spec.rb"
232
+ - "./spec/lib/build_eval/server/travis_org_spec.rb"
218
233
  - "./spec/lib/build_eval_smoke_spec.rb"
219
234
  - "./spec/lib/build_eval_spec.rb"
220
235
  - "./spec/spec_helper.rb"
@@ -1,23 +0,0 @@
1
- module BuildEval
2
- module Server
3
-
4
- class Travis
5
-
6
- def initialize(args)
7
- @http = BuildEval::Http.new(args)
8
- @username = args[:username]
9
- end
10
-
11
- def build_result(name)
12
- raw_response = @http.get("https://api.travis-ci.org/repositories/#{@username}/#{name}/cc.xml")
13
- BuildEval::Server::CruiseControlResponse.new(raw_response).parse_result("//Project")
14
- end
15
-
16
- def to_s
17
- "Travis CI #{@username}"
18
- end
19
-
20
- end
21
-
22
- end
23
- end
@@ -1,53 +0,0 @@
1
- describe BuildEval::Server::Travis, "integrating with a response parser", integration: true do
2
- include_context "stubbed http interactions"
3
-
4
- let(:username) { "some_username" }
5
-
6
- let(:travis) { described_class.new(username: username) }
7
-
8
- describe "#build_result" do
9
-
10
- let(:build_name) { "some_build_name" }
11
- let(:response) { instance_double(Net::HTTPResponse, body: response_body) }
12
-
13
- subject { travis.build_result(build_name) }
14
-
15
- before(:example) { allow(http).to receive(:get).and_return(response) }
16
-
17
- context "when the server responds successfully with build results" do
18
-
19
- let(:latest_build_status) { "Success" }
20
- let(:response_body) do
21
- <<-RESPONSE
22
- <Projects>
23
- <Project name="#{username}/#{build_name}" activity="Sleeping" lastBuildStatus="#{latest_build_status}" lastBuildLabel="2" lastBuildTime="2015-08-13T08:31:27.000+0000" webUrl="https://travis-ci.org/#{username}/#{build_name}" />
24
- </Projects>
25
- RESPONSE
26
- end
27
-
28
- it "creates a build result containing the build name" do
29
- expect(BuildEval::Result::BuildResult).to receive(:create).with(hash_including(build_name: build_name))
30
-
31
- subject
32
- end
33
-
34
- it "creates a build result containing the latest build status" do
35
- expect(BuildEval::Result::BuildResult).to(
36
- receive(:create).with(hash_including(status_name: latest_build_status))
37
- )
38
-
39
- subject
40
- end
41
-
42
- it "returns the created result" do
43
- build_result = instance_double(BuildEval::Result::BuildResult)
44
- allow(BuildEval::Result::BuildResult).to receive(:create).and_return(build_result)
45
-
46
- expect(subject).to eql(build_result)
47
- end
48
-
49
- end
50
-
51
- end
52
-
53
- end
@@ -1,70 +0,0 @@
1
- describe BuildEval::Server::Travis do
2
- include_context "stubbed http interactions"
3
-
4
- let(:username) { "some_username" }
5
- let(:constructor_args) { { username: username } }
6
-
7
- let(:travis_server) { described_class.new(constructor_args) }
8
-
9
- it_behaves_like "a continuous integration server" do
10
-
11
- let(:server) { travis_server }
12
-
13
- end
14
-
15
- describe "#build_result" do
16
-
17
- let(:build_name) { "some_build_name" }
18
- let(:response) { instance_double(Net::HTTPResponse) }
19
- let(:build_result) { instance_double(BuildEval::Result::BuildResult) }
20
- let(:cruise_control_response) do
21
- instance_double(BuildEval::Server::CruiseControlResponse, parse_result: build_result)
22
- end
23
-
24
- subject { travis_server.build_result(build_name) }
25
-
26
- before(:example) do
27
- allow(http).to receive(:get).and_return(response)
28
- allow(BuildEval::Server::CruiseControlResponse).to receive(:new).and_return(cruise_control_response)
29
- allow(cruise_control_response).to receive(:parse_result).and_return(build_result)
30
- end
31
-
32
- it "issues a GET request for the build" do
33
- expect(http).to receive(:get).with("https://api.travis-ci.org/repositories/#{username}/#{build_name}/cc.xml")
34
-
35
- subject rescue Exception
36
- end
37
-
38
- it "creates a Cruise Control response containing the GET request response" do
39
- expect(BuildEval::Server::CruiseControlResponse).to receive(:new).with(response)
40
-
41
- subject
42
- end
43
-
44
- it "parses the Cruise Control response to return the project" do
45
- expect(cruise_control_response).to receive(:parse_result).with("//Project")
46
-
47
- subject
48
- end
49
-
50
- it "returns the parsed build result" do
51
- expect(subject).to eql(build_result)
52
- end
53
-
54
- end
55
-
56
- describe "#to_s" do
57
-
58
- subject { travis_server.to_s }
59
-
60
- it "returns a string indicating it uses the Travis CI service" do
61
- expect(subject).to include("Travis CI")
62
- end
63
-
64
- it "returns a string containing the username" do
65
- expect(subject).to include(username)
66
- end
67
-
68
- end
69
-
70
- end