modern_times 0.2.11 → 0.3.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 (50) hide show
  1. data/README.rdoc +114 -80
  2. data/VERSION +1 -1
  3. data/examples/advanced_requestor/README +15 -0
  4. data/examples/advanced_requestor/base_request_worker.rb +13 -0
  5. data/examples/advanced_requestor/char_count_worker.rb +11 -0
  6. data/examples/advanced_requestor/exception_raiser_worker.rb +10 -0
  7. data/examples/advanced_requestor/length_worker.rb +9 -0
  8. data/examples/advanced_requestor/manager.rb +22 -0
  9. data/examples/advanced_requestor/modern_times.yml +32 -0
  10. data/examples/advanced_requestor/print_worker.rb +9 -0
  11. data/examples/advanced_requestor/publish.rb +46 -0
  12. data/examples/advanced_requestor/reverse_worker.rb +9 -0
  13. data/examples/advanced_requestor/triple_worker.rb +9 -0
  14. data/examples/requestor/request.rb +3 -3
  15. data/examples/requestor/reverse_echo_worker.rb +1 -2
  16. data/lib/modern_times.rb +1 -1
  17. data/lib/modern_times/base/supervisor.rb +2 -0
  18. data/lib/modern_times/base/worker.rb +5 -3
  19. data/lib/modern_times/jms.rb +2 -0
  20. data/lib/modern_times/jms/connection.rb +7 -0
  21. data/lib/modern_times/jms/publish_handle.rb +219 -0
  22. data/lib/modern_times/jms/publisher.rb +55 -29
  23. data/lib/modern_times/{jms_requestor/worker.rb → jms/request_worker.rb} +29 -51
  24. data/lib/modern_times/jms/supervisor.rb +30 -0
  25. data/lib/modern_times/jms/supervisor_mbean.rb +17 -1
  26. data/lib/modern_times/jms/worker.rb +43 -40
  27. data/lib/modern_times/manager.rb +6 -2
  28. data/lib/modern_times/marshal_strategy.rb +14 -17
  29. data/lib/modern_times/marshal_strategy/bson.rb +2 -0
  30. data/lib/modern_times/marshal_strategy/json.rb +3 -0
  31. data/lib/modern_times/marshal_strategy/ruby.rb +3 -0
  32. data/lib/modern_times/marshal_strategy/string.rb +3 -0
  33. data/lib/modern_times/marshal_strategy/yaml.rb +3 -0
  34. data/lib/modern_times/railsable.rb +7 -14
  35. data/lib/modern_times/time_track.rb +84 -0
  36. data/test/jms.yml +1 -0
  37. data/test/jms_failure_test.rb +128 -0
  38. data/test/jms_requestor_block_test.rb +275 -0
  39. data/test/jms_requestor_test.rb +71 -96
  40. data/test/jms_test.rb +59 -78
  41. data/test/marshal_strategy_test.rb +1 -3
  42. metadata +29 -14
  43. data/examples/exception_test/bar_worker.rb +0 -8
  44. data/examples/exception_test/base_worker.rb +0 -23
  45. data/examples/exception_test/manager.rb +0 -11
  46. data/lib/modern_times/jms_requestor.rb +0 -10
  47. data/lib/modern_times/jms_requestor/request_handle.rb +0 -42
  48. data/lib/modern_times/jms_requestor/requestor.rb +0 -56
  49. data/lib/modern_times/jms_requestor/supervisor.rb +0 -45
  50. data/lib/modern_times/jms_requestor/supervisor_mbean.rb +0 -21
@@ -7,47 +7,30 @@ require 'erb'
7
7
  # NOTE: This test requires a running ActiveMQ server
8
8
 
9
9
  module HashTest
10
- module ModuleMethods
11
- def create_obj(i)
12
- {
13
- 'foo' => 1,
14
- 'bar' => {
15
- 'message' => i,
16
- 'dummy' => "Message #{i}"
17
- },
18
- # Only YAML will maintain symbols
19
- :zulu => :rugger
20
- }
21
- end
22
-
23
- def parse_obj(obj)
24
- obj['answer']
25
- end
10
+ def self.create_obj(i)
11
+ {
12
+ 'foo' => 1,
13
+ 'bar' => {
14
+ 'message' => i,
15
+ 'dummy' => "Message #{i}"
16
+ },
17
+ # Only YAML will maintain symbols
18
+ :zulu => :rugger
19
+ }
26
20
  end
27
21
 
28
- def self.included(base)
29
- base.extend(ModuleMethods)
22
+ def self.parse_obj(obj)
23
+ obj['answer']
30
24
  end
31
25
 
32
- def request(obj)
26
+ def self.request(obj)
33
27
  {
34
28
  'answer' => obj['bar']['message']
35
29
  }
36
30
  end
37
31
  end
38
32
 
39
- module BSONTest
40
- extend ModernTimes::MarshalStrategy::BSON
41
- include HashTest
42
- end
43
-
44
- module JSONTest
45
- extend ModernTimes::MarshalStrategy::JSON
46
- include HashTest
47
- end
48
-
49
33
  module RubyTest
50
- extend ModernTimes::MarshalStrategy::Ruby
51
34
 
52
35
  class MyClass
53
36
  attr_reader :i
@@ -64,14 +47,12 @@ module RubyTest
64
47
  obj.i-10
65
48
  end
66
49
 
67
- def request(obj)
50
+ def self.request(obj)
68
51
  return MyClass.new(obj.i+10)
69
52
  end
70
53
  end
71
54
 
72
55
  module StringTest
73
- extend ModernTimes::MarshalStrategy::String
74
-
75
56
  def self.create_obj(i)
76
57
  "Message #{i}"
77
58
  end
@@ -84,7 +65,7 @@ module StringTest
84
65
  end
85
66
  end
86
67
 
87
- def request(str)
68
+ def self.request(str)
88
69
  if str =~ /^Message (\d+)$/
89
70
  "Returning #{$1}"
90
71
  else
@@ -94,12 +75,17 @@ module StringTest
94
75
  end
95
76
 
96
77
  class DefaultWorker
97
- include ModernTimes::JMSRequestor::Worker
78
+ include ModernTimes::JMS::RequestWorker
79
+ response :marshal => :yaml, :time_to_live => 10000
80
+
81
+ def request(obj)
82
+ options[:tester].request(obj)
83
+ end
98
84
  end
99
85
 
100
86
  class SleepWorker
101
- include ModernTimes::JMSRequestor::Worker
102
- marshal :string
87
+ include ModernTimes::JMS::RequestWorker
88
+ response :marshal => :string, :time_to_live => 10000
103
89
 
104
90
  def request(i)
105
91
  sleep i.to_i
@@ -112,7 +98,7 @@ class JMSRequestorTest < Test::Unit::TestCase
112
98
  @@server = JMX.simple_server
113
99
  @@client = JMX.connect
114
100
 
115
- context 'jms' do
101
+ context 'jms request' do
116
102
  setup do
117
103
  config = YAML.load(ERB.new(File.read(File.join(File.dirname(__FILE__), 'jms.yml'))).result(binding))
118
104
  ModernTimes::JMS::Connection.init(config)
@@ -121,14 +107,17 @@ class JMSRequestorTest < Test::Unit::TestCase
121
107
  teardown do
122
108
  end
123
109
 
124
- #[BSONTest, JSONTest, RubyTest, StringTest].each do |marshal_module|
125
- [BSONTest, JSONTest, StringTest].each do |marshal_module|
126
- marshal_module.name =~ /(.*)Test/
127
- marshal_type = $1
128
-
129
- context "marshaling with #{marshal_type}" do
110
+ {
111
+ :bson => HashTest,
112
+ :json => HashTest,
113
+ :ruby => RubyTest,
114
+ :string => StringTest,
115
+ :yaml => HashTest
116
+ }.each do |marshal, tester|
117
+
118
+ context "marshaling with #{marshal}" do
130
119
  setup do
131
- @domain = "Uniquize_#{marshal_module.name}"
120
+ @domain = "Uniquize_#{marshal}"
132
121
  @manager = ModernTimes::Manager.new(:domain => @domain)
133
122
  end
134
123
 
@@ -140,13 +129,12 @@ class JMSRequestorTest < Test::Unit::TestCase
140
129
  end
141
130
 
142
131
  should "reply correctly with multiple threads" do
143
- DefaultWorker.send(:include, marshal_module)
144
- DefaultWorker.send(:marshal, marshal_module)
145
- @manager.add(DefaultWorker, 10)
132
+ DefaultWorker.response(:marshal => marshal, :time_to_live => 10000)
133
+ @manager.add(DefaultWorker, 10, :tester => tester)
146
134
 
147
135
  sleep 1
148
136
 
149
- requestor = ModernTimes::JMSRequestor::Requestor.new(:queue_name => 'Default', :marshal => marshal_module)
137
+ publisher = ModernTimes::JMS::Publisher.new(:queue_name => 'Default', :marshal => marshal, :response => true)
150
138
  threads = []
151
139
  start = Time.now
152
140
  (0..9).each do |i|
@@ -154,10 +142,11 @@ class JMSRequestorTest < Test::Unit::TestCase
154
142
  start = i*10
155
143
  range = start..(start+9)
156
144
  range.each do |x|
157
- obj = marshal_module.create_obj(x)
158
- handle = requestor.request(obj, 2)
159
- val = marshal_module.parse_obj(handle.read_response)
160
- assert x == val, "#{i} does not equal #{val}"
145
+ obj = tester.create_obj(x)
146
+ handle = publisher.publish(obj)
147
+ reply_obj = handle.read_response(2)
148
+ val = tester.parse_obj(reply_obj)
149
+ assert x == val, "#{x} does not equal #{val}"
161
150
  end
162
151
  end
163
152
  end
@@ -172,7 +161,7 @@ class JMSRequestorTest < Test::Unit::TestCase
172
161
  @manager = ModernTimes::Manager.new(:domain => @domain)
173
162
  @manager.add(SleepWorker, 10)
174
163
  sleep 1
175
- @requestor = ModernTimes::JMSRequestor::Requestor.new(:queue_name => 'Sleep', :marshal => :string)
164
+ @publisher = ModernTimes::JMS::Publisher.new(:queue_name => 'Sleep', :marshal => :string, :response => true)
176
165
  end
177
166
 
178
167
  teardown do
@@ -183,21 +172,19 @@ class JMSRequestorTest < Test::Unit::TestCase
183
172
  end
184
173
 
185
174
  should "work correctly if request is complete before the timeout" do
186
- [[1,0,2,0.8,1.2], [2,1,3,1.6,2.4], [1,2,3,0,8,1.2], [3,1,2,2.8,3.4]].each do |info|
175
+ [[1,0,2,0.8,1.2], [2,1,3,1.8,2.2], [1,2,3,0.8,1.2], [3,1,2,2.8,3.2]].each do |info|
187
176
  work_sleep_time, publish_sleep_time, timeout_time, min_time, max_time = info
188
177
  threads = []
189
178
  start_time = Time.now
190
179
  (0..9).each do |i|
191
180
  threads << Thread.new(i) do |i|
192
- handle = @requestor.request(work_sleep_time, timeout_time)
181
+ handle = @publisher.publish(work_sleep_time)
193
182
  sleep publish_sleep_time
194
183
  if work_sleep_time < timeout_time
195
- response = handle.read_response.to_i
184
+ response = handle.read_response(timeout_time).to_i
196
185
  assert work_sleep_time == response, "#{work_sleep_time} does not equal #{response}"
197
186
  else
198
- e = assert_raises Timeout::Error do
199
- response = handle.read_response.to_i
200
- end
187
+ assert handle.read_response(timeout_time).nil?
201
188
  actual_time = Time.now - start_time
202
189
  assert timeout_time-0.1 < actual_time, "Bad timeout #{actual_time}"
203
190
  assert timeout_time+0.3 > actual_time, "Bad timeout #{actual_time}"
@@ -215,7 +202,7 @@ class JMSRequestorTest < Test::Unit::TestCase
215
202
  bean_max = bean.max_response_time
216
203
  puts "total=#{total_time} avg=#{bean_avg} min=#{bean_min} max=#{bean_max}"
217
204
  all_times = [bean_avg, bean_min, bean_max]
218
- all_times << total_time if work_sleep_time < timeout_time
205
+ all_times << total_time if work_sleep_time > publish_sleep_time && work_sleep_time < timeout_time
219
206
  all_times.each do |time_val|
220
207
  assert min_time < time_val, "#{time_val} is not between #{min_time} and #{max_time}"
221
208
  assert max_time > time_val, "#{time_val} is not between #{min_time} and #{max_time}"
@@ -224,40 +211,28 @@ class JMSRequestorTest < Test::Unit::TestCase
224
211
  end
225
212
  end
226
213
 
227
- # context 'dummy requesting' do
228
- # setup do
229
- # workers = [
230
- # DefaultWorker,
231
- # Dummy::DefaultWorker,
232
- # SpecifiedQueueWorker,
233
- # SpecifiedQueue2Worker,
234
- # SpecifiedTopicWorker,
235
- # SpecifiedTopic2Worker,
236
- # ]
237
- # workers.each do |worker_klass|
238
- # worker_klass.send(:include, RubyTest)
239
- # end
240
- # ModernTimes::JMS::Publisher.setup_dummy_publishing(workers)
241
- # end
242
- #
243
- # teardown do
244
- # ModernTimes::JMS::Publisher.clear_dummy_publishing
245
- # end
246
- #
247
- # should "directly call applicable workers" do
248
- # publish(RubyTest, 100..199, :queue_name => 'Default')
249
- # publish(RubyTest, 200..299, :queue_name => 'Dummy_Default')
250
- # publish(RubyTest, 300..499, :queue_name => 'MyQueueName')
251
- # publish(RubyTest, 500..599, :virtual_topic_name => 'MyTopicName')
252
- #
253
- # # DefaultWorker should have 5 instances running with each worker handling between 10-30 messages in the range 100.199
254
- # assert_worker(nil, DefaultWorker, nil, 1, 100..199, 100, 100, 1)
255
- # assert_worker(nil, Dummy::DefaultWorker, nil, 1, 200..299, 100, 100, 1)
256
- # assert_worker(nil, SpecifiedQueueWorker, nil, 1, 300..499, 200, 200, 1)
257
- # assert_worker(nil, SpecifiedQueue2Worker, nil, 1, 300..499, 200, 200, 1)
258
- # assert_worker(nil, SpecifiedTopicWorker, nil, 1, 500..599, 100, 100, 1)
259
- # assert_worker(nil, SpecifiedTopic2Worker, nil, 1, 500..599, 100, 100, 1)
260
- # end
261
- # end
214
+ context 'dummy requesting' do
215
+ setup do
216
+ @tester = RubyTest
217
+ workers = [
218
+ DefaultWorker.new(:tester => @tester)
219
+ ]
220
+ ModernTimes::JMS::Publisher.setup_dummy_publishing(workers)
221
+ end
222
+
223
+ teardown do
224
+ ModernTimes::JMS::Publisher.clear_dummy_publishing
225
+ end
226
+
227
+ should "directly call applicable workers" do
228
+ x=9999
229
+ obj = @tester.create_obj(x)
230
+ publisher = ModernTimes::JMS::Publisher.new(:queue_name => 'Default', :marshal => :ruby, :response => true)
231
+ handle = publisher.publish(obj)
232
+ reply_obj = handle.read_response(2)
233
+ val = @tester.parse_obj(reply_obj)
234
+ assert x == val, "#{x} does not equal #{val}"
235
+ end
236
+ end
262
237
  end
263
238
  end
data/test/jms_test.rb CHANGED
@@ -11,6 +11,7 @@ module WorkerHelper
11
11
  @@mutex = Mutex.new
12
12
  def initialize(opts={})
13
13
  super
14
+ @tester = opts[:tester]
14
15
  @@mutex.synchronize do
15
16
  @@workers[self.class.name] ||= []
16
17
  @@workers[self.class.name] << self
@@ -18,6 +19,10 @@ module WorkerHelper
18
19
  @hash = Hash.new(0)
19
20
  end
20
21
 
22
+ def perform(obj)
23
+ add_message(@tester.translate(obj))
24
+ end
25
+
21
26
  def self.workers(worker_klass)
22
27
  @@workers[worker_klass.name]
23
28
  end
@@ -41,42 +46,24 @@ module WorkerHelper
41
46
  end
42
47
 
43
48
  module HashTest
44
- module ModuleMethods
45
- def create_obj(i)
46
- {
47
- 'foo' => 1,
48
- 'bar' => {
49
- 'message' => i,
50
- 'dummy' => "Message #{i}"
51
- },
52
- # Only YAML will maintain symbols
53
- :zulu => :rugger
54
- }
55
- end
56
- end
57
-
58
- def self.included(base)
59
- base.extend(ModuleMethods)
49
+ def self.create_obj(i)
50
+ {
51
+ 'foo' => 1,
52
+ 'bar' => {
53
+ 'message' => i,
54
+ 'dummy' => "Message #{i}"
55
+ },
56
+ # Only YAML will maintain symbols
57
+ :zulu => :rugger
58
+ }
60
59
  end
61
60
 
62
- def perform(obj)
63
- add_message(obj['bar']['message'])
61
+ def self.translate(obj)
62
+ obj['bar']['message']
64
63
  end
65
64
  end
66
65
 
67
- module BSONTest
68
- extend ModernTimes::MarshalStrategy::BSON
69
- include HashTest
70
- end
71
-
72
- module JSONTest
73
- extend ModernTimes::MarshalStrategy::JSON
74
- include HashTest
75
- end
76
-
77
66
  module RubyTest
78
- extend ModernTimes::MarshalStrategy::Ruby
79
-
80
67
  class MyClass
81
68
  attr_reader :i
82
69
  def initialize(i)
@@ -88,21 +75,19 @@ module RubyTest
88
75
  MyClass.new(i)
89
76
  end
90
77
 
91
- def perform(obj)
92
- add_message(obj.i)
78
+ def self.translate(obj)
79
+ obj.i
93
80
  end
94
81
  end
95
82
 
96
83
  module StringTest
97
- extend ModernTimes::MarshalStrategy::String
98
-
99
84
  def self.create_obj(i)
100
85
  "Message #{i}"
101
86
  end
102
87
 
103
- def perform(str)
88
+ def self.translate(str)
104
89
  if str =~ /^Message (\d+)$/
105
- add_message($1.to_i)
90
+ $1.to_i
106
91
  else
107
92
  raise "Unknown message: #{str}"
108
93
  end
@@ -150,11 +135,11 @@ class JMSTest < Test::Unit::TestCase
150
135
  @@server = JMX.simple_server
151
136
  @@client = JMX.connect
152
137
 
153
- def publish(marshal_module, range, options)
154
- publisher = ModernTimes::JMS::Publisher.new(options.merge(:marshal => marshal_module))
155
- puts "Publishing #{range} to #{publisher}"
138
+ def publish(marshal, tester, range, options)
139
+ publisher = ModernTimes::JMS::Publisher.new(options.merge(:marshal => marshal))
140
+ puts "Publishing #{range} to #{publisher} via #{marshal}"
156
141
  range.each do |i|
157
- obj = marshal_module.create_obj(i)
142
+ obj = tester.create_obj(i)
158
143
  publisher.publish(obj)
159
144
  end
160
145
  end
@@ -170,6 +155,7 @@ class JMSTest < Test::Unit::TestCase
170
155
  all_messages = []
171
156
  workers.each do |worker|
172
157
  msg_count = worker.message_count
158
+ assert msg_count
173
159
  assert msg_count >= min, "#{msg_count} is not between #{min} and #{max}"
174
160
  assert msg_count <= max, "#{msg_count} is not between #{min} and #{max}"
175
161
  # Make sure no duplicate messages
@@ -202,15 +188,17 @@ class JMSTest < Test::Unit::TestCase
202
188
  teardown do
203
189
  end
204
190
 
205
- [BSONTest, JSONTest, RubyTest, StringTest].each do |marshal_module|
206
- #[RubyTest].each do |marshal_module|
207
- #[BSONTest, JSONTest, StringTest].each do |marshal_module|
208
- marshal_module.name =~ /(.*)Test/
209
- marshal_type = $1
191
+ {
192
+ :bson => HashTest,
193
+ :json => HashTest,
194
+ :ruby => RubyTest,
195
+ :string => StringTest,
196
+ :yaml => HashTest
197
+ }.each do |marshal, tester|
210
198
 
211
- context "marshaling with #{marshal_type}" do
199
+ context "marshaling with #{marshal}" do
212
200
  setup do
213
- @domain = "Uniquize_#{marshal_module.name}"
201
+ @domain = "Uniquize_#{marshal}"
214
202
  @manager = ModernTimes::Manager.new(:domain => @domain)
215
203
  end
216
204
 
@@ -223,26 +211,22 @@ class JMSTest < Test::Unit::TestCase
223
211
 
224
212
  should "operate on queues and topics" do
225
213
  WorkerHelper.reset_workers
226
- [DefaultWorker, Dummy::DefaultWorker, SpecifiedQueueWorker, SpecifiedQueue2Worker, SpecifiedTopicWorker, SpecifiedTopic2Worker].each do |worker_klass|
227
- worker_klass.send(:include, marshal_module)
228
- worker_klass.send(:marshal, marshal_module)
229
- end
230
- @manager.add(DefaultWorker, 3)
231
- @manager.add(DefaultWorker, 2, :name => 'DefaultClone')
232
- @manager.add(Dummy::DefaultWorker, 4)
233
- @manager.add(SpecifiedQueueWorker, 3)
234
- @manager.add(SpecifiedQueueWorker, 2, :name => 'SpecifiedQueueClone')
235
- @manager.add(SpecifiedQueue2Worker, 2)
236
- @manager.add(SpecifiedTopicWorker, 3)
237
- @manager.add(SpecifiedTopicWorker, 2, :name => 'SpecifiedTopicClone')
238
- @manager.add(SpecifiedTopic2Worker, 2)
214
+ @manager.add(DefaultWorker, 3, :tester => tester)
215
+ @manager.add(DefaultWorker, 2, :name => 'DefaultClone', :tester => tester)
216
+ @manager.add(Dummy::DefaultWorker, 4, :tester => tester)
217
+ @manager.add(SpecifiedQueueWorker, 3, :tester => tester)
218
+ @manager.add(SpecifiedQueueWorker, 2, :name => 'SpecifiedQueueClone', :tester => tester)
219
+ @manager.add(SpecifiedQueue2Worker, 2, :tester => tester)
220
+ @manager.add(SpecifiedTopicWorker, 3, :tester => tester)
221
+ @manager.add(SpecifiedTopicWorker, 2, :name => 'SpecifiedTopicClone', :tester => tester)
222
+ @manager.add(SpecifiedTopic2Worker, 2, :tester => tester)
239
223
 
240
224
  sleep 1
241
225
 
242
- publish(marshal_module, 100..199, :queue_name => 'Default')
243
- publish(marshal_module, 200..299, :queue_name => 'Dummy_Default')
244
- publish(marshal_module, 300..499, :queue_name => 'MyQueueName')
245
- publish(marshal_module, 500..599, :virtual_topic_name => 'MyTopicName')
226
+ publish(marshal, tester, 100..199, :queue_name => 'Default')
227
+ publish(marshal, tester, 200..299, :queue_name => 'Dummy_Default')
228
+ publish(marshal, tester, 300..499, :queue_name => 'MyQueueName')
229
+ publish(marshal, tester, 500..599, :virtual_topic_name => 'MyTopicName')
246
230
 
247
231
  # Let the workers do their thing
248
232
  sleep 5
@@ -259,18 +243,15 @@ class JMSTest < Test::Unit::TestCase
259
243
 
260
244
  context 'dummy publishing' do
261
245
  setup do
246
+ WorkerHelper.reset_workers
262
247
  workers = [
263
- DefaultWorker,
264
- Dummy::DefaultWorker,
265
- SpecifiedQueueWorker,
266
- SpecifiedQueue2Worker,
267
- SpecifiedTopicWorker,
268
- SpecifiedTopic2Worker,
248
+ DefaultWorker.new(:tester => RubyTest),
249
+ Dummy::DefaultWorker.new(:tester => RubyTest),
250
+ SpecifiedQueueWorker.new(:tester => RubyTest),
251
+ SpecifiedQueue2Worker.new(:tester => RubyTest),
252
+ SpecifiedTopicWorker.new(:tester => RubyTest),
253
+ SpecifiedTopic2Worker.new(:tester => RubyTest),
269
254
  ]
270
- workers.each do |worker_klass|
271
- worker_klass.send(:include, RubyTest)
272
- end
273
- WorkerHelper.reset_workers
274
255
  ModernTimes::JMS::Publisher.setup_dummy_publishing(workers)
275
256
  end
276
257
 
@@ -279,10 +260,10 @@ class JMSTest < Test::Unit::TestCase
279
260
  end
280
261
 
281
262
  should "directly call applicable workers" do
282
- publish(RubyTest, 100..199, :queue_name => 'Default')
283
- publish(RubyTest, 200..299, :queue_name => 'Dummy_Default')
284
- publish(RubyTest, 300..499, :queue_name => 'MyQueueName')
285
- publish(RubyTest, 500..599, :virtual_topic_name => 'MyTopicName')
263
+ publish(:ruby, RubyTest, 100..199, :queue_name => 'Default')
264
+ publish(:ruby, RubyTest, 200..299, :queue_name => 'Dummy_Default')
265
+ publish(:ruby, RubyTest, 300..499, :queue_name => 'MyQueueName')
266
+ publish(:ruby, RubyTest, 500..599, :virtual_topic_name => 'MyTopicName')
286
267
 
287
268
  # DefaultWorker should have 5 instances running with each worker handling between 10-30 messages in the range 100.199
288
269
  assert_worker(nil, DefaultWorker, nil, 1, 100..199, 100, 100, 1)