sanford 0.1.0 → 0.2.0

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 (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