sanford 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. data/bench/report.txt +34 -4
  2. data/bench/runner.rb +122 -1
  3. data/bench/services.rb +5 -2
  4. data/lib/sanford/error_handler.rb +60 -0
  5. data/lib/sanford/exceptions.rb +11 -10
  6. data/lib/sanford/host.rb +79 -101
  7. data/lib/sanford/host_data.rb +55 -0
  8. data/lib/sanford/logger.rb +23 -0
  9. data/lib/sanford/manager.rb +13 -22
  10. data/lib/sanford/rake.rb +1 -0
  11. data/lib/sanford/runner.rb +50 -0
  12. data/lib/sanford/server.rb +31 -15
  13. data/lib/sanford/service_handler.rb +34 -43
  14. data/lib/sanford/test_runner.rb +47 -0
  15. data/lib/sanford/version.rb +1 -1
  16. data/lib/sanford/worker.rb +124 -0
  17. data/lib/sanford.rb +49 -6
  18. data/sanford.gemspec +1 -1
  19. data/test/helper.rb +1 -0
  20. data/test/support/fake_connection.rb +18 -0
  21. data/test/support/helpers.rb +6 -10
  22. data/test/support/service_handlers.rb +56 -68
  23. data/test/support/services.rb +55 -10
  24. data/test/system/managing_test.rb +18 -18
  25. data/test/system/request_handling_test.rb +10 -100
  26. data/test/unit/config_test.rb +1 -43
  27. data/test/unit/error_handler_test.rb +133 -0
  28. data/test/unit/host_configuration_test.rb +41 -0
  29. data/test/unit/host_data_test.rb +65 -0
  30. data/test/unit/host_test.rb +20 -112
  31. data/test/unit/{host/version_group_test.rb → host_version_group_test.rb} +0 -0
  32. data/test/unit/hosts_test.rb +56 -0
  33. data/test/unit/manager_test.rb +3 -3
  34. data/test/unit/runner_test.rb +26 -0
  35. data/test/unit/server_test.rb +10 -2
  36. data/test/unit/service_handler_test.rb +126 -115
  37. data/test/unit/worker_test.rb +195 -0
  38. metadata +28 -16
  39. data/lib/sanford/config.rb +0 -33
  40. data/lib/sanford/connection.rb +0 -70
  41. data/lib/sanford/exception_handler.rb +0 -43
  42. data/test/unit/connection_test.rb +0 -23
  43. data/test/unit/exception_handler_test.rb +0 -69
@@ -1,170 +1,181 @@
1
1
  require 'assert'
2
2
 
3
+ require 'sanford/test_runner'
4
+
3
5
  module Sanford::ServiceHandler
4
6
 
5
7
  class BaseTest < Assert::Context
8
+ include Sanford::TestRunner::Helpers
9
+
6
10
  desc "Sanford::ServiceHandler"
7
11
  setup do
8
- @handler = StaticServiceHandler.new
12
+ @handler = test_runner(TestServiceHandler).handler
9
13
  end
10
14
  subject{ @handler }
11
15
 
12
- should have_instance_methods :logger, :request, :init, :init!, :run, :run!, :halt, :params
16
+ should have_instance_methods :init, :init!, :run, :run!
13
17
 
14
18
  should "raise a NotImplementedError if run! is not overwritten" do
15
19
  assert_raises(NotImplementedError){ subject.run! }
16
20
  end
17
- should "return the request's params with #params" do
18
- assert_equal subject.request.params, subject.params
19
- end
21
+
20
22
  end
21
23
 
22
24
  class WithMethodFlagsTest < BaseTest
23
25
  setup do
24
- @handler = FlaggedServiceHandler.new
26
+ @handler = test_runner(FlagServiceHandler).handler
25
27
  end
26
28
 
27
- should "should call the `init!` method when `init` is called" do
28
- subject.init
29
-
29
+ should "have called `init!` and it's callbacks" do
30
+ assert_equal true, subject.before_init_called
30
31
  assert_equal true, subject.init_bang_called
32
+ assert_equal true, subject.after_init_called
31
33
  end
32
- should "run the `init` and `run!` method when `run` is called" do
33
- subject.run
34
34
 
35
- assert_equal true, subject.init_called
36
- assert_equal true, subject.run_bang_called
35
+ should "not have called `run!` or it's callbacks when initialized" do
36
+ assert_nil subject.before_run_called
37
+ assert_nil subject.run_bang_called
38
+ assert_nil subject.after_run_called
37
39
  end
38
- should "run it's callbacks when `run` is called" do
40
+
41
+ should "call `run!` and it's callbacks when it's `run`" do
39
42
  subject.run
40
43
 
41
44
  assert_equal true, subject.before_run_called
45
+ assert_equal true, subject.run_bang_called
42
46
  assert_equal true, subject.after_run_called
43
47
  end
48
+
44
49
  end
45
50
 
46
- class ManualWithThrowTest < BaseTest
47
- desc "run that manuallly throws `:halt`"
48
- setup do
49
- handler = ManualThrowServiceHandler.new
50
- @returned = handler.run
51
- end
51
+ class HaltTest < BaseTest
52
+ desc "halt"
52
53
 
53
- should "catch `:halt` and return what was thrown" do
54
- assert_equal 'halted!', @returned
55
- end
56
- end
54
+ should "return a response with the status code and the passed data" do
55
+ runner = test_runner(HaltServiceHandler, {
56
+ 'code' => 648,
57
+ 'data' => true
58
+ })
59
+ runner.run
57
60
 
58
- class HaltWithAStatusNameAndMessageTest < BaseTest
59
- desc "halt with a status name and a message"
60
- setup do
61
- @halt_with = { :code => :success, :message => "Just a test" }
62
- handler = HaltWithServiceHandler.new(@halt_with)
63
- @response_status, @data = handler.run
61
+ assert_equal 648, runner.response.code
62
+ assert_equal true, runner.response.data
63
+ assert_nil runner.response.status.message
64
64
  end
65
65
 
66
- should "return a response with the status passed to halt and a nil data" do
67
- assert_equal @halt_with[:code], @response_status.first
68
- assert_equal @halt_with[:message], @response_status.last
69
- assert_equal @halt_with[:data], @data
70
- end
71
- end
66
+ should "return a response with the status code for the named status and the passed message" do
67
+ runner = test_runner(HaltServiceHandler, {
68
+ 'code' => 'ok',
69
+ 'message' => 'test message'
70
+ })
71
+ runner.run
72
72
 
73
- class HaltWithAStatusCodeAndDataTest < BaseTest
74
- desc "halt with a status code and data"
75
- setup do
76
- @halt_with = { :code => 648, :data => true }
77
- handler = HaltWithServiceHandler.new(@halt_with)
78
- @response_status, @data = handler.run
73
+ assert_equal 200, runner.response.code
74
+ assert_equal 'test message', runner.response.status.message
75
+ assert_nil runner.response.data
79
76
  end
80
77
 
81
- should "return a response status and data when passed a number and a data option" do
82
- assert_equal @halt_with[:code], @response_status.first
83
- assert_equal @halt_with[:message], @response_status.last
84
- assert_equal @halt_with[:data], @data
85
- end
86
78
  end
87
79
 
88
- class BeforeRunHaltsTest < BaseTest
89
- desc "if 'before_run' halts"
90
- setup do
91
- @handler = ConfigurableServiceHandler.new({
92
- :before_run => proc{ halt 601, :message => "before_run halted" }
80
+ class HaltingTest < BaseTest
81
+ desc "halting at different points"
82
+
83
+ should "not call `init!, `after_init`, `run!` or run's callbacks when `before_init` halts" do
84
+ runner = test_runner(HaltingBehaviorServiceHandler, {
85
+ 'when' => 'before_init'
93
86
  })
94
- @response_status, @data = @handler.run
87
+ response = runner.response
88
+
89
+ assert_equal true, response.data[:before_init_called]
90
+ assert_equal nil, response.data[:init_bang_called]
91
+ assert_equal nil, response.data[:after_init_called]
92
+ assert_equal nil, response.data[:before_run_called]
93
+ assert_equal nil, response.data[:run_bang_called]
94
+ assert_equal nil, response.data[:after_run_called]
95
+
96
+ assert_equal 'before_init halting', response.status.message
95
97
  end
96
98
 
97
- should "only call 'before_run' and 'after_run'" do
98
- assert_equal true, subject.before_run_called
99
- assert_equal false, subject.init_called
100
- assert_equal false, subject.init_bang_called
101
- assert_equal false, subject.run_bang_called
102
- assert_equal true, subject.after_run_called
99
+ should "not call `after_init`, `run!` or it's callbacks when `init!` halts" do
100
+ runner = test_runner(HaltingBehaviorServiceHandler, {
101
+ 'when' => 'init!'
102
+ })
103
+ response = runner.response
104
+
105
+ assert_equal true, response.data[:before_init_called]
106
+ assert_equal true, response.data[:init_bang_called]
107
+ assert_equal nil, response.data[:after_init_called]
108
+ assert_equal nil, response.data[:before_run_called]
109
+ assert_equal nil, response.data[:run_bang_called]
110
+ assert_equal nil, response.data[:after_run_called]
111
+
112
+ assert_equal 'init! halting', response.status.message
103
113
  end
104
114
 
105
- should "return the 'before_run' response" do
106
- assert_equal 601, @response_status.first
107
- assert_equal "before_run halted", @response_status.last
108
- assert_equal nil, @data
115
+ should "not call `run!` or it's callbacks when `after_init` halts" do
116
+ runner = test_runner(HaltingBehaviorServiceHandler, {
117
+ 'when' => 'after_init'
118
+ })
119
+ response = runner.response
120
+
121
+ assert_equal true, response.data[:before_init_called]
122
+ assert_equal true, response.data[:init_bang_called]
123
+ assert_equal true, response.data[:after_init_called]
124
+ assert_equal nil, response.data[:before_run_called]
125
+ assert_equal nil, response.data[:run_bang_called]
126
+ assert_equal nil, response.data[:after_run_called]
127
+
128
+ assert_equal 'after_init halting', response.status.message
109
129
  end
110
- end
111
130
 
112
- class AfterRunHaltsTest < BaseTest
113
- desc "if 'after_run' halts"
114
- setup do
115
- @after_run = proc{ halt 801, :message => "after_run halted" }
131
+ should "not call `run!` or `after_run` when `before_run` halts" do
132
+ runner = test_runner(HaltingBehaviorServiceHandler, {
133
+ 'when' => 'before_run'
134
+ })
135
+ response = runner.run
136
+
137
+ assert_equal true, response.data[:before_init_called]
138
+ assert_equal true, response.data[:init_bang_called]
139
+ assert_equal true, response.data[:after_init_called]
140
+ assert_equal true, response.data[:before_run_called]
141
+ assert_equal nil, response.data[:run_bang_called]
142
+ assert_equal nil, response.data[:after_run_called]
143
+
144
+ assert_equal 'before_run halting', runner.response.status.message
116
145
  end
117
146
 
118
- end
147
+ should "not call `after_run` when `run!` halts" do
148
+ runner = test_runner(HaltingBehaviorServiceHandler, {
149
+ 'when' => 'run!'
150
+ })
151
+ response = runner.run
152
+
153
+ assert_equal true, response.data[:before_init_called]
154
+ assert_equal true, response.data[:init_bang_called]
155
+ assert_equal true, response.data[:after_init_called]
156
+ assert_equal true, response.data[:before_run_called]
157
+ assert_equal true, response.data[:run_bang_called]
158
+ assert_equal nil, response.data[:after_run_called]
119
159
 
120
- class AndBeforeRunHaltsTest < AfterRunHaltsTest
121
- desc "and 'before_run' halts"
122
- setup do
123
- @handler = ConfigurableServiceHandler.new({
124
- :before_run => proc{ halt 601, :message => "before_run halted" },
125
- :after_run => @after_run
126
- })
127
- @response_status, @data = @handler.run
128
- end
129
-
130
- should "only call 'before_run' and 'after_run'" do
131
- assert_equal true, subject.before_run_called
132
- assert_equal false, subject.init_called
133
- assert_equal false, subject.init_bang_called
134
- assert_equal false, subject.run_bang_called
135
- assert_equal true, subject.after_run_called
136
- end
137
-
138
- should "return the 'after_run' response" do
139
- assert_equal 801, @response_status.first
140
- assert_equal "after_run halted", @response_status.last
141
- assert_equal nil, @data
142
- end
160
+ assert_equal 'run! halting', runner.response.status.message
143
161
  end
144
162
 
145
- class AndRunBangHaltsTest < AfterRunHaltsTest
146
- desc "and 'run!' halts"
147
- setup do
148
- @handler = ConfigurableServiceHandler.new({
149
- :run! => proc{ halt 601, :message => "run! halted" },
150
- :after_run => @after_run
151
- })
152
- @response_status, @data = @handler.run
153
- end
154
-
155
- should "call 'init!', 'run!' and the callbacks" do
156
- assert_equal true, subject.before_run_called
157
- assert_equal true, subject.init_called
158
- assert_equal true, subject.init_bang_called
159
- assert_equal true, subject.run_bang_called
160
- assert_equal true, subject.after_run_called
161
- end
162
-
163
- should "return the 'after_run' response" do
164
- assert_equal 801, @response_status.first
165
- assert_equal "after_run halted", @response_status.last
166
- assert_equal nil, @data
167
- end
163
+ should "call `init`, `run` and their callbacks when `after_run` halts" do
164
+ runner = test_runner(HaltingBehaviorServiceHandler, {
165
+ 'when' => 'after_run'
166
+ })
167
+ response = runner.run
168
+
169
+ assert_equal true, response.data[:before_init_called]
170
+ assert_equal true, response.data[:init_bang_called]
171
+ assert_equal true, response.data[:after_init_called]
172
+ assert_equal true, response.data[:before_run_called]
173
+ assert_equal true, response.data[:run_bang_called]
174
+ assert_equal true, response.data[:after_run_called]
175
+
176
+ assert_equal 'after_run halting', runner.response.status.message
168
177
  end
169
178
 
179
+ end
180
+
170
181
  end
@@ -0,0 +1,195 @@
1
+ require 'assert'
2
+
3
+ require 'sanford-protocol/test/helpers'
4
+
5
+ class Sanford::Worker
6
+
7
+ # turn off the protocol's debugging (in case it's on) and turn on Sanford's
8
+ # debugging
9
+ class SetupContextToRaiseExceptions < Assert::Context
10
+ setup do
11
+ @env_sanford_protocol_debug = ENV['SANFORD_PROTOCOL_DEBUG']
12
+ @env_sanford_debug = ENV['SANFORD_DEBUG']
13
+ ENV.delete('SANFORD_PROTOCOL_DEBUG')
14
+ ENV['SANFORD_DEBUG'] = '1'
15
+ end
16
+ teardown do
17
+ ENV['SANFORD_DEBUG'] = @env_sanford_debug
18
+ ENV['SANFORD_PROTOCOL_DEBUG'] = @env_sanford_protocol_debug
19
+ end
20
+ end
21
+
22
+ class BaseTest < SetupContextToRaiseExceptions
23
+ include Sanford::Protocol::Test::Helpers
24
+
25
+ desc "Sanford::Worker"
26
+ setup do
27
+ @host_data = Sanford::HostData.new(TestHost)
28
+ @connection = FakeConnection.with_request('version', 'service', {})
29
+ @worker = Sanford::Worker.new(@host_data, @connection)
30
+ end
31
+ subject{ @worker }
32
+
33
+ should have_instance_methods :logger, :run
34
+
35
+ end
36
+
37
+ class EchoTest < BaseTest
38
+ desc "running a request for the echo server"
39
+ setup do
40
+ @connection = FakeConnection.with_request('v1', 'echo', { :message => 'test' })
41
+ @worker = Sanford::Worker.new(@host_data, @connection)
42
+ end
43
+
44
+ should "return a successful response and echo the params sent to it" do
45
+ assert_nothing_raised{ @worker.run }
46
+ response = @connection.response
47
+
48
+ assert_equal 200, response.status.code
49
+ assert_equal nil, response.status.message
50
+ assert_equal 'test', response.data
51
+ end
52
+
53
+ end
54
+
55
+ class MissingServiceVersionTest < BaseTest
56
+ desc "running a request with no service version"
57
+ setup do
58
+ request_hash = Sanford::Protocol::Request.new('v1', 'what', {}).to_hash
59
+ request_hash.delete('version')
60
+ @connection = FakeConnection.new(request_hash)
61
+ @worker = Sanford::Worker.new(@host_data, @connection)
62
+ end
63
+
64
+ should "return a bad request response" do
65
+ assert_raises(Sanford::Protocol::BadRequestError) do
66
+ @worker.run
67
+ end
68
+ response = @connection.response
69
+
70
+ assert_equal 400, response.status.code
71
+ assert_match "request", response.status.message
72
+ assert_match "version", response.status.message
73
+ assert_equal nil, response.data
74
+ end
75
+
76
+ end
77
+
78
+ class MissingServiceNameTest < BaseTest
79
+ desc "running a request with no service name"
80
+ setup do
81
+ request_hash = Sanford::Protocol::Request.new('v1', 'what', {}).to_hash
82
+ request_hash.delete('name')
83
+ @connection = FakeConnection.new(request_hash)
84
+ @worker = Sanford::Worker.new(@host_data, @connection)
85
+ end
86
+
87
+ should "return a bad request response" do
88
+ assert_raises(Sanford::Protocol::BadRequestError) do
89
+ @worker.run
90
+ end
91
+ response = @connection.response
92
+
93
+ assert_equal 400, response.status.code
94
+ assert_match "request", response.status.message
95
+ assert_match "name", response.status.message
96
+ assert_equal nil, response.data
97
+ end
98
+
99
+ end
100
+
101
+ class NotFoundServiceTest < BaseTest
102
+ desc "running a request with no matching service name"
103
+ setup do
104
+ @connection = FakeConnection.with_request('v1', 'what', {})
105
+ @worker = Sanford::Worker.new(@host_data, @connection)
106
+ end
107
+
108
+ should "return a bad request response" do
109
+ assert_raises(Sanford::NotFoundError) do
110
+ @worker.run
111
+ end
112
+ response = @connection.response
113
+
114
+ assert_equal 404, response.status.code
115
+ assert_equal nil, response.status.message
116
+ assert_equal nil, response.data
117
+ end
118
+
119
+ end
120
+
121
+ class ErrorServiceTest < BaseTest
122
+ desc "running a request that errors on the server"
123
+ setup do
124
+ @connection = FakeConnection.with_request('v1', 'bad', {})
125
+ @worker = Sanford::Worker.new(@host_data, @connection)
126
+ end
127
+
128
+ should "return a bad request response" do
129
+ assert_raises(RuntimeError) do
130
+ @worker.run
131
+ end
132
+ response = @connection.response
133
+
134
+ assert_equal 500, response.status.code
135
+ assert_match "error", response.status.message
136
+ assert_equal nil, response.data
137
+ end
138
+
139
+ end
140
+
141
+ class HaltTest < BaseTest
142
+ desc "running a request that halts"
143
+ setup do
144
+ @connection = FakeConnection.with_request('v1', 'halt_it', {})
145
+ @worker = Sanford::Worker.new(@host_data, @connection)
146
+ end
147
+
148
+ should "return the response that was halted" do
149
+ assert_nothing_raised{ @worker.run }
150
+ response = @connection.response
151
+
152
+ assert_equal 728, response.status.code
153
+ assert_equal "I do what I want", response.status.message
154
+ assert_equal [ 1, true, 'yes' ], response.data
155
+ end
156
+
157
+ end
158
+
159
+ class AuthorizeRequestTest < BaseTest
160
+ desc "running a request that halts in a callback"
161
+ setup do
162
+ @connection = FakeConnection.with_request('v1', 'authorized', {})
163
+ @worker = Sanford::Worker.new(@host_data, @connection)
164
+ end
165
+
166
+ should "return the response that was halted" do
167
+ assert_nothing_raised{ @worker.run }
168
+ response = @connection.response
169
+
170
+ assert_equal 401, response.status.code
171
+ assert_equal "Not authorized", response.status.message
172
+ assert_equal nil, response.data
173
+ end
174
+
175
+ end
176
+
177
+ class WithCustomErrorHandlerTest < BaseTest
178
+ desc "running a request that triggers our custom error handler"
179
+ setup do
180
+ @connection = FakeConnection.with_request('v1', 'custom_error', {})
181
+ @worker = Sanford::Worker.new(@host_data, @connection)
182
+ end
183
+
184
+ should "return the response that was halted" do
185
+ assert_raises(::MyCustomError){ @worker.run }
186
+ response = @connection.response
187
+
188
+ assert_equal 987, response.status.code
189
+ assert_equal "custom error!", response.status.message
190
+ assert_equal nil, response.data
191
+ end
192
+
193
+ end
194
+
195
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sanford
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 23
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 1
8
+ - 2
9
9
  - 0
10
- version: 0.1.0
10
+ version: 0.2.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Collin Redding
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2012-12-04 00:00:00 Z
19
+ date: 2013-01-24 00:00:00 Z
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
22
  prerelease: false
@@ -55,12 +55,11 @@ dependencies:
55
55
  requirements:
56
56
  - - ~>
57
57
  - !ruby/object:Gem::Version
58
- hash: 23
58
+ hash: 15
59
59
  segments:
60
60
  - 1
61
61
  - 0
62
- - 0
63
- version: 1.0.0
62
+ version: "1.0"
64
63
  requirement: *id003
65
64
  name: ns-options
66
65
  type: :runtime
@@ -131,19 +130,23 @@ files:
131
130
  - bench/services.rb
132
131
  - bench/tasks.rb
133
132
  - lib/sanford.rb
134
- - lib/sanford/config.rb
135
- - lib/sanford/connection.rb
136
- - lib/sanford/exception_handler.rb
133
+ - lib/sanford/error_handler.rb
137
134
  - lib/sanford/exceptions.rb
138
135
  - lib/sanford/host.rb
136
+ - lib/sanford/host_data.rb
137
+ - lib/sanford/logger.rb
139
138
  - lib/sanford/manager.rb
140
139
  - lib/sanford/rake.rb
140
+ - lib/sanford/runner.rb
141
141
  - lib/sanford/server.rb
142
142
  - lib/sanford/service_handler.rb
143
+ - lib/sanford/test_runner.rb
143
144
  - lib/sanford/version.rb
145
+ - lib/sanford/worker.rb
144
146
  - log/.gitkeep
145
147
  - sanford.gemspec
146
148
  - test/helper.rb
149
+ - test/support/fake_connection.rb
147
150
  - test/support/helpers.rb
148
151
  - test/support/service_handlers.rb
149
152
  - test/support/services.rb
@@ -151,13 +154,17 @@ files:
151
154
  - test/system/managing_test.rb
152
155
  - test/system/request_handling_test.rb
153
156
  - test/unit/config_test.rb
154
- - test/unit/connection_test.rb
155
- - test/unit/exception_handler_test.rb
156
- - test/unit/host/version_group_test.rb
157
+ - test/unit/error_handler_test.rb
158
+ - test/unit/host_configuration_test.rb
159
+ - test/unit/host_data_test.rb
157
160
  - test/unit/host_test.rb
161
+ - test/unit/host_version_group_test.rb
162
+ - test/unit/hosts_test.rb
158
163
  - test/unit/manager_test.rb
164
+ - test/unit/runner_test.rb
159
165
  - test/unit/server_test.rb
160
166
  - test/unit/service_handler_test.rb
167
+ - test/unit/worker_test.rb
161
168
  homepage: https://github.com/redding/sanford
162
169
  licenses: []
163
170
 
@@ -193,6 +200,7 @@ specification_version: 3
193
200
  summary: Simple hosts for Sanford services.
194
201
  test_files:
195
202
  - test/helper.rb
203
+ - test/support/fake_connection.rb
196
204
  - test/support/helpers.rb
197
205
  - test/support/service_handlers.rb
198
206
  - test/support/services.rb
@@ -200,10 +208,14 @@ test_files:
200
208
  - test/system/managing_test.rb
201
209
  - test/system/request_handling_test.rb
202
210
  - test/unit/config_test.rb
203
- - test/unit/connection_test.rb
204
- - test/unit/exception_handler_test.rb
205
- - test/unit/host/version_group_test.rb
211
+ - test/unit/error_handler_test.rb
212
+ - test/unit/host_configuration_test.rb
213
+ - test/unit/host_data_test.rb
206
214
  - test/unit/host_test.rb
215
+ - test/unit/host_version_group_test.rb
216
+ - test/unit/hosts_test.rb
207
217
  - test/unit/manager_test.rb
218
+ - test/unit/runner_test.rb
208
219
  - test/unit/server_test.rb
209
220
  - test/unit/service_handler_test.rb
221
+ - test/unit/worker_test.rb
@@ -1,33 +0,0 @@
1
- require 'ns-options'
2
- require 'pathname'
3
- require 'set'
4
-
5
- ENV['SANFORD_SERVICES_CONFIG'] ||= 'config/services'
6
-
7
- module Sanford
8
-
9
- module Config
10
- include NsOptions::Proxy
11
-
12
- option :hosts, Set, :default => []
13
- option :services_config, Pathname, :default => ENV['SANFORD_SERVICES_CONFIG']
14
-
15
- # We want class names to take precedence over a configured name, so that if
16
- # a user specifies a specific class, they always get it
17
- def self.find_host(name)
18
- self.find_host_by_class_name(name) || self.find_host_by_name(name)
19
- end
20
-
21
- protected
22
-
23
- def self.find_host_by_class_name(class_name)
24
- self.hosts.detect{|host_class| host_class.to_s == class_name.to_s }
25
- end
26
-
27
- def self.find_host_by_name(name)
28
- self.hosts.detect{|host_class| host_class.name == name.to_s }
29
- end
30
-
31
- end
32
-
33
- end