build_eval 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
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