activemessaging 0.13.0 → 0.13.1
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.
- data/.gitignore +6 -0
- data/.travis.yml +1 -2
- data/Appraisals +4 -2
- data/Gemfile +1 -18
- data/Rakefile +3 -27
- data/activemessaging.gemspec +24 -138
- data/gemfiles/activesupport23.gemfile +3 -5
- data/gemfiles/activesupport30.gemfile +3 -5
- data/gemfiles/activesupport31.gemfile +3 -5
- data/gemfiles/activesupport32.gemfile +3 -5
- data/lib/activemessaging/test_helper.rb +11 -74
- data/lib/activemessaging/threaded_poller.rb +16 -16
- data/lib/activemessaging/version.rb +3 -0
- metadata +59 -55
- checksums.yaml +0 -7
- data/Gemfile.lock +0 -87
- data/VERSION +0 -1
- data/gemfiles/activesupport23.gemfile.lock +0 -51
- data/gemfiles/activesupport30.gemfile.lock +0 -53
- data/gemfiles/activesupport31.gemfile.lock +0 -55
- data/gemfiles/activesupport32.gemfile.lock +0 -55
- data/init.rb +0 -1
- data/poller.rb +0 -14
- data/test/all_tests.rb +0 -10
- data/test/app/config/broker.yml +0 -4
- data/test/asqs_test.rb +0 -125
- data/test/config_test.rb +0 -42
- data/test/filter_test.rb +0 -131
- data/test/gateway_test.rb +0 -220
- data/test/jms_test.rb +0 -64
- data/test/reliable_msg_test.rb +0 -83
- data/test/stomp_test.rb +0 -168
- data/test/test_helper.rb +0 -36
- data/test/tracer_test.rb +0 -57
data/test/gateway_test.rb
DELETED
@@ -1,220 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/test_helper'
|
2
|
-
|
3
|
-
class InitializeFilter
|
4
|
-
|
5
|
-
attr_accessor :options
|
6
|
-
|
7
|
-
def initialize(options)
|
8
|
-
@options = options
|
9
|
-
end
|
10
|
-
|
11
|
-
def process(message, details={})
|
12
|
-
puts "ObjectFilter process called!"
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
class GatewayTest < Test::Unit::TestCase
|
17
|
-
class ClassFilter
|
18
|
-
def initialize
|
19
|
-
raise "Don't try and construct one of these please"
|
20
|
-
end
|
21
|
-
|
22
|
-
class << self
|
23
|
-
def process(message, details={})
|
24
|
-
puts "ClassFilter process called!"
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
class ObjectFilter
|
30
|
-
def process(message, details={})
|
31
|
-
puts "ObjectFilter process called!"
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
class MessageManglingFilter
|
36
|
-
class << self
|
37
|
-
def process(message, details={})
|
38
|
-
message.body.upcase!
|
39
|
-
message.id.upcase!
|
40
|
-
message.headers['the-mangler'] = 'run'
|
41
|
-
message.destination.gsub! '/', '#'
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
class TestProcessor < ActiveMessaging::Processor
|
47
|
-
include ActiveMessaging::MessageSender
|
48
|
-
#subscribes_to :testqueue
|
49
|
-
def on_message(message)
|
50
|
-
@test_message = true
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
class TestRetryProcessor < ActiveMessaging::Processor
|
55
|
-
include ActiveMessaging::MessageSender
|
56
|
-
#subscribes_to :testqueue
|
57
|
-
def on_message(message)
|
58
|
-
#puts "TestRetryProcessor - about to raise exception"
|
59
|
-
raise ActiveMessaging::AbortMessageException.new("Cause a retry!")
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
class TestAdapter
|
64
|
-
end
|
65
|
-
|
66
|
-
def setup
|
67
|
-
end
|
68
|
-
|
69
|
-
def teardown
|
70
|
-
ActiveMessaging::Gateway.reset
|
71
|
-
end
|
72
|
-
|
73
|
-
|
74
|
-
def test_create_filter
|
75
|
-
filter_obj = ActiveMessaging::Gateway.create_filter('gateway_test/object_filter', {:direction=>:incoming, :name=>'test1'})
|
76
|
-
assert filter_obj
|
77
|
-
assert filter_obj.is_a?(GatewayTest::ObjectFilter)
|
78
|
-
|
79
|
-
filter_obj = ActiveMessaging::Gateway.create_filter('initialize_filter', {:direction=>:incoming, :name=>'test2'})
|
80
|
-
assert filter_obj
|
81
|
-
assert filter_obj.is_a?(InitializeFilter)
|
82
|
-
assert_equal filter_obj.options, {:direction=>:incoming, :name=>'test2'}
|
83
|
-
|
84
|
-
filter_obj = ActiveMessaging::Gateway.create_filter(:initialize_filter, {:direction=>:incoming, :name=>'test2'})
|
85
|
-
assert filter_obj
|
86
|
-
assert filter_obj.is_a?(InitializeFilter)
|
87
|
-
assert_equal filter_obj.options, {:direction=>:incoming, :name=>'test2'}
|
88
|
-
|
89
|
-
filter_obj = ActiveMessaging::Gateway.create_filter(:'gateway_test/class_filter', {:direction=>:incoming, :name=>'test2'})
|
90
|
-
assert filter_obj
|
91
|
-
assert filter_obj.is_a?(Class)
|
92
|
-
assert_equal filter_obj.name, "GatewayTest::ClassFilter"
|
93
|
-
end
|
94
|
-
|
95
|
-
def test_register_adapter
|
96
|
-
ActiveMessaging::Gateway.register_adapter :test_register_adapter, TestAdapter
|
97
|
-
assert_equal TestAdapter, ActiveMessaging::Gateway.adapters[:test_register_adapter]
|
98
|
-
end
|
99
|
-
|
100
|
-
def test_destination
|
101
|
-
ActiveMessaging::Gateway.destination :hello_world, '/queue/helloWorld'
|
102
|
-
dest = ActiveMessaging::Gateway.named_destinations[:hello_world]
|
103
|
-
assert_equal :hello_world, dest.name
|
104
|
-
end
|
105
|
-
|
106
|
-
def test_destination_duplicates
|
107
|
-
ActiveMessaging::Gateway.destination :hello_world, '/queue/helloWorld'
|
108
|
-
dest = ActiveMessaging::Gateway.named_destinations[:hello_world]
|
109
|
-
assert_equal :hello_world, dest.name
|
110
|
-
|
111
|
-
# make sure a dupe name causes an error
|
112
|
-
assert_raises RuntimeError do
|
113
|
-
ActiveMessaging::Gateway.destination :hello_world, '/queue/helloWorld2'
|
114
|
-
end
|
115
|
-
end
|
116
|
-
|
117
|
-
def test_connection
|
118
|
-
conn = ActiveMessaging::Gateway.connection
|
119
|
-
assert_equal conn.class, ActiveMessaging::Adapters::Test::Connection
|
120
|
-
end
|
121
|
-
|
122
|
-
def test_subscribe_and_unsubscribe
|
123
|
-
ActiveMessaging::Gateway.destination :hello_world, '/queue/helloWorld'
|
124
|
-
ActiveMessaging::Gateway.subscribe_to :hello_world, TestProcessor, headers={}
|
125
|
-
sub = ActiveMessaging::Gateway.subscriptions.values.last
|
126
|
-
assert_equal :hello_world, sub.destination.name
|
127
|
-
assert_equal TestProcessor, sub.processor_class
|
128
|
-
|
129
|
-
ActiveMessaging::Gateway.subscribe
|
130
|
-
assert_not_nil ActiveMessaging::Gateway.connection.find_subscription(sub.destination.value)
|
131
|
-
|
132
|
-
ActiveMessaging::Gateway.unsubscribe
|
133
|
-
assert_nil ActiveMessaging::Gateway.connection.find_subscription(sub.destination.value)
|
134
|
-
end
|
135
|
-
|
136
|
-
def test_disconnect
|
137
|
-
assert_equal 0, ActiveMessaging::Gateway.connections.keys.size
|
138
|
-
|
139
|
-
conn = ActiveMessaging::Gateway.connection
|
140
|
-
assert_equal 1, ActiveMessaging::Gateway.connections.keys.size
|
141
|
-
assert_equal true, conn.connected
|
142
|
-
|
143
|
-
ActiveMessaging::Gateway.disconnect
|
144
|
-
|
145
|
-
assert_equal 0, ActiveMessaging::Gateway.connections.keys.size
|
146
|
-
assert_equal false, conn.connected
|
147
|
-
end
|
148
|
-
|
149
|
-
def test_publish
|
150
|
-
ActiveMessaging::Gateway.destination :hello_world, '/queue/helloWorld'
|
151
|
-
ActiveMessaging::Gateway.publish :hello_world, "test_publish body", self.class, headers={}, timeout=10
|
152
|
-
assert_not_nil ActiveMessaging::Gateway.connection.find_message('/queue/helloWorld', "test_publish body")
|
153
|
-
|
154
|
-
assert_raise(RuntimeError) do
|
155
|
-
ActiveMessaging::Gateway.publish :hello_world, nil, self.class, headers={}, timeout=10
|
156
|
-
end
|
157
|
-
assert_raise(RuntimeError) do
|
158
|
-
ActiveMessaging::Gateway.publish :hello_world, '', self.class, headers={}, timeout=10
|
159
|
-
end
|
160
|
-
end
|
161
|
-
|
162
|
-
def test_acknowledge_message
|
163
|
-
ActiveMessaging::Gateway.destination :hello_world, '/queue/helloWorld'
|
164
|
-
ActiveMessaging::Gateway.subscribe_to :hello_world, TestProcessor, headers={}
|
165
|
-
sub = ActiveMessaging::Gateway.subscriptions.values.last
|
166
|
-
dest = ActiveMessaging::Adapters::Test::Destination.new '/queue/helloWorld'
|
167
|
-
msg = ActiveMessaging::Adapters::Test::Message.new("message_body", nil, {}, dest.name)
|
168
|
-
ActiveMessaging::Gateway.acknowledge_message sub, msg
|
169
|
-
assert_equal msg, ActiveMessaging::Gateway.connection.received_messages.first
|
170
|
-
end
|
171
|
-
|
172
|
-
def test_abort_message
|
173
|
-
ActiveMessaging::Gateway.destination :hello_world, '/queue/helloWorld'
|
174
|
-
ActiveMessaging::Gateway.subscribe_to :hello_world, TestRetryProcessor, headers={}
|
175
|
-
sub = ActiveMessaging::Gateway.subscriptions.values.last
|
176
|
-
dest = ActiveMessaging::Adapters::Test::Destination.new '/queue/helloWorld'
|
177
|
-
msg = ActiveMessaging::Adapters::Test::Message.new("message_body", nil, {}, dest.name)
|
178
|
-
ActiveMessaging::Gateway.dispatch(msg)
|
179
|
-
assert_equal msg, ActiveMessaging::Gateway.connection.unreceived_messages.first
|
180
|
-
end
|
181
|
-
|
182
|
-
def test_aborted_messages_retry_original_message
|
183
|
-
ActiveMessaging::Gateway.destination :hello_world, '/queue/helloWorld'
|
184
|
-
ActiveMessaging::Gateway.filter 'gateway_test/message_mangling_filter'
|
185
|
-
ActiveMessaging::Gateway.subscribe_to :hello_world, TestRetryProcessor, headers={}
|
186
|
-
|
187
|
-
message_body = "message_body"
|
188
|
-
message_id = "55-a-msg"
|
189
|
-
message_headers = { 'x-my-header' => 'value' }
|
190
|
-
message_destination = '/queue/helloWorld'
|
191
|
-
msg = ActiveMessaging::Adapters::Test::Message.new(message_body.dup, message_id.dup, message_headers.dup, message_destination.dup)
|
192
|
-
ActiveMessaging::Gateway.dispatch(msg)
|
193
|
-
assert_equal message_body, ActiveMessaging::Gateway.connection.unreceived_messages.first.body
|
194
|
-
assert_equal message_id, ActiveMessaging::Gateway.connection.unreceived_messages.first.id
|
195
|
-
assert_equal message_headers, ActiveMessaging::Gateway.connection.unreceived_messages.first.headers
|
196
|
-
assert_equal message_destination, ActiveMessaging::Gateway.connection.unreceived_messages.first.destination
|
197
|
-
end
|
198
|
-
|
199
|
-
def test_receive
|
200
|
-
ActiveMessaging::Gateway.destination :hello_world, '/queue/helloWorld'
|
201
|
-
ActiveMessaging::Gateway.publish :hello_world, "test_publish body", self.class, headers={}, timeout=10
|
202
|
-
msg = ActiveMessaging::Gateway.receive :hello_world, self.class, headers={}, timeout=10
|
203
|
-
assert_not_nil ActiveMessaging::Gateway.connection.find_message('/queue/helloWorld', "test_publish body")
|
204
|
-
end
|
205
|
-
|
206
|
-
# def test_reload
|
207
|
-
# ActiveMessaging.reload_activemessaging
|
208
|
-
# size = ActiveMessaging::Gateway.named_destinations.size
|
209
|
-
# ActiveMessaging.reload_activemessaging
|
210
|
-
# assert_equal size, ActiveMessaging::Gateway.named_destinations.size
|
211
|
-
# end
|
212
|
-
|
213
|
-
## figure out how to test these better - start in a thread perhaps?
|
214
|
-
# def test_start
|
215
|
-
# end
|
216
|
-
#
|
217
|
-
# def test_stop
|
218
|
-
# end
|
219
|
-
|
220
|
-
end
|
data/test/jms_test.rb
DELETED
@@ -1,64 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/test_helper'
|
2
|
-
|
3
|
-
if defined?(JRUBY_VERSION)
|
4
|
-
|
5
|
-
require 'activemessaging/adapters/jms'
|
6
|
-
|
7
|
-
class JmsTest < Test::Unit::TestCase
|
8
|
-
|
9
|
-
def setup
|
10
|
-
@test_txt = 'Yo Homie!'
|
11
|
-
@isolation_const = rand(99999999)
|
12
|
-
@connection = ActiveMessaging::Adapters::Jms::Connection.new(:url => 'vm://jms_test',
|
13
|
-
:login => '',
|
14
|
-
:passcode => '',
|
15
|
-
:connection_factory => 'org.apache.activemq.ActiveMQConnectionFactory')
|
16
|
-
end
|
17
|
-
|
18
|
-
def test_send
|
19
|
-
@connection.send "/queue/TestQueue#{@isolation_const}", @test_txt, {}
|
20
|
-
end
|
21
|
-
|
22
|
-
def test_receive_with_one
|
23
|
-
@connection.send "/queue/TestQueue#{@isolation_const}", @test_txt
|
24
|
-
@connection.subscribe "/queue/TestQueue#{@isolation_const}"
|
25
|
-
message = @connection.receive
|
26
|
-
assert_equal @test_txt, message.body
|
27
|
-
end
|
28
|
-
|
29
|
-
def test_receive_multi
|
30
|
-
10.times do |i|
|
31
|
-
@connection.send "/queue/MultiQueue#{@isolation_const}", @test_txt
|
32
|
-
end
|
33
|
-
|
34
|
-
counter=0
|
35
|
-
@connection.subscribe "/queue/MultiQueue#{@isolation_const}"
|
36
|
-
while message = @connection.receive
|
37
|
-
assert_equal @test_txt, message.body
|
38
|
-
counter += 1
|
39
|
-
end
|
40
|
-
assert_equal 10, counter
|
41
|
-
end
|
42
|
-
|
43
|
-
def test_one_off_receive
|
44
|
-
@connection.send "/queue/OneOff#{@isolation_const}", "one off message"
|
45
|
-
sleep 2
|
46
|
-
message = @connection.receive "/queue/OneOff#{@isolation_const}"
|
47
|
-
assert_equal "one off message", message.body
|
48
|
-
assert_equal "MESSAGE", message.command
|
49
|
-
assert_equal "/queue/OneOff#{@isolation_const}", message.headers['destination']
|
50
|
-
end
|
51
|
-
|
52
|
-
def test_unsubscribe
|
53
|
-
@connection.subscribe "/queue/TestSubQueue#{@isolation_const}"
|
54
|
-
@connection.unsubscribe "/queue/TestSubQueue#{@isolation_const}"
|
55
|
-
assert_nil @connection.consumers["TestSubQueue#{@isolation_const}"]
|
56
|
-
end
|
57
|
-
|
58
|
-
def teardown
|
59
|
-
@connection.close unless @connection.nil?
|
60
|
-
end
|
61
|
-
|
62
|
-
end
|
63
|
-
|
64
|
-
end
|
data/test/reliable_msg_test.rb
DELETED
@@ -1,83 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/test_helper'
|
2
|
-
loaded = true
|
3
|
-
begin
|
4
|
-
require 'reliable-msg'
|
5
|
-
rescue Object => e
|
6
|
-
loaded = false
|
7
|
-
end
|
8
|
-
if loaded
|
9
|
-
|
10
|
-
require 'activemessaging/adapters/reliable_msg'
|
11
|
-
|
12
|
-
class ReliableMsgTest < Test::Unit::TestCase
|
13
|
-
|
14
|
-
def setup
|
15
|
-
@qm = ReliableMsg::QueueManager.new
|
16
|
-
@qm.start
|
17
|
-
@connection = ActiveMessaging::Adapters::ReliableMsgConnection.new(:reliable=>false, :poll_interval=>2)
|
18
|
-
@d = "/queue/reliable.msg.test}."
|
19
|
-
@message = "mary had a little lamb"
|
20
|
-
@message2 = "whose fleece was white as snow"
|
21
|
-
end
|
22
|
-
|
23
|
-
def teardown
|
24
|
-
@connection.disconnect unless @connection.nil?
|
25
|
-
@qm.stop unless @qm.nil?
|
26
|
-
end
|
27
|
-
|
28
|
-
def test_subscribe_and_unsubscribe
|
29
|
-
assert_nil @connection.subscriptions["#{@d}test_subscribe"]
|
30
|
-
@connection.subscribe "#{@d}test_subscribe"
|
31
|
-
assert_equal 1, @connection.subscriptions["#{@d}test_subscribe"].count
|
32
|
-
@connection.subscribe "#{@d}test_subscribe"
|
33
|
-
assert_equal 2, @connection.subscriptions["#{@d}test_subscribe"].count
|
34
|
-
@connection.unsubscribe "#{@d}test_subscribe"
|
35
|
-
assert_equal 1, @connection.subscriptions["#{@d}test_subscribe"].count
|
36
|
-
@connection.unsubscribe "#{@d}test_subscribe"
|
37
|
-
assert_nil @connection.subscriptions["#{@d}test_subscribe"]
|
38
|
-
end
|
39
|
-
|
40
|
-
def test_send_and_receive
|
41
|
-
@connection.subscribe "#{@d}test_send_and_receive"
|
42
|
-
@connection.send "#{@d}test_send_and_receive", @message
|
43
|
-
message = @connection.receive
|
44
|
-
@connection.received message
|
45
|
-
assert_equal @message, message.body
|
46
|
-
end
|
47
|
-
|
48
|
-
|
49
|
-
def test_send_and_receive_multiple_subscriptions
|
50
|
-
@connection.subscribe "#{@d}test_send_and_receive1"
|
51
|
-
@connection.subscribe "#{@d}test_send_and_receive2"
|
52
|
-
@connection.subscribe "#{@d}test_send_and_receive3"
|
53
|
-
|
54
|
-
@connection.send "#{@d}test_send_and_receive2", "message2"
|
55
|
-
message = @connection.receive
|
56
|
-
@connection.received message
|
57
|
-
assert_equal "message2", message.body
|
58
|
-
|
59
|
-
@connection.send "#{@d}test_send_and_receive3", "message3"
|
60
|
-
message = @connection.receive
|
61
|
-
@connection.received message
|
62
|
-
assert_equal "message3", message.body
|
63
|
-
|
64
|
-
end
|
65
|
-
|
66
|
-
|
67
|
-
def test_will_cause_sleep
|
68
|
-
|
69
|
-
begin
|
70
|
-
Timeout.timeout 10 do
|
71
|
-
@connection.subscribe "#{@d}test_will_cause_sleep"
|
72
|
-
message = @connection.receive
|
73
|
-
@connection.received message
|
74
|
-
assert false
|
75
|
-
end
|
76
|
-
rescue Timeout::Error=>toe
|
77
|
-
assert true
|
78
|
-
end
|
79
|
-
end
|
80
|
-
|
81
|
-
end
|
82
|
-
|
83
|
-
end # if loaded
|
data/test/stomp_test.rb
DELETED
@@ -1,168 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/test_helper'
|
2
|
-
require 'activemessaging/adapters/stomp'
|
3
|
-
|
4
|
-
loaded = true
|
5
|
-
begin
|
6
|
-
require 'stomp'
|
7
|
-
rescue Object => e
|
8
|
-
loaded = false
|
9
|
-
end
|
10
|
-
if loaded #only run these test if stomp gem installed
|
11
|
-
|
12
|
-
|
13
|
-
class FakeTCPSocket
|
14
|
-
attr_accessor :sent_messages
|
15
|
-
def initialize; @sent_messages=[]; end
|
16
|
-
def puts(s=""); @sent_messages << s; end
|
17
|
-
def write(s=""); self.puts s; end
|
18
|
-
def ready?; true; end
|
19
|
-
end
|
20
|
-
|
21
|
-
|
22
|
-
module Stomp
|
23
|
-
class Connection
|
24
|
-
|
25
|
-
attr_accessor :subscriptions
|
26
|
-
|
27
|
-
def socket
|
28
|
-
@socket = FakeTCPSocket.new if @socket.nil?
|
29
|
-
@socket
|
30
|
-
end
|
31
|
-
|
32
|
-
def receive=(msg)
|
33
|
-
# stomp 1.0.5 code, now no longer works
|
34
|
-
# sm = Stomp::Message.new do |m|
|
35
|
-
# m.command = 'MESSAGE'
|
36
|
-
# m.body = msg
|
37
|
-
# m.headers = {'message-id'=>'testmessage1', 'content-length'=>msg.length, 'destination'=>'destination1'}
|
38
|
-
# end
|
39
|
-
|
40
|
-
sm = Stomp::Message.new("MESSAGE\ndestination:/queue/stomp/destination/1\nmessage-id: messageid1\ncontent-length:#{msg.length}\n\n#{msg}\0\n")
|
41
|
-
|
42
|
-
sm.command = 'MESSAGE'
|
43
|
-
sm.headers = {'message-id'=>'testmessage1', 'content-length'=>msg.length, 'destination'=>'destination1'}
|
44
|
-
|
45
|
-
@test_message = ActiveMessaging::Adapters::Stomp::Message.new(sm)
|
46
|
-
end
|
47
|
-
|
48
|
-
def receive
|
49
|
-
@test_message
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
class StompTest < Test::Unit::TestCase
|
55
|
-
|
56
|
-
def setup
|
57
|
-
@connection = ActiveMessaging::Adapters::Stomp::Connection.new({})
|
58
|
-
@d = "/queue/stomp/destination/1"
|
59
|
-
@message = "mary had a little lamb"
|
60
|
-
@connection.stomp_connection.receive = @message
|
61
|
-
end
|
62
|
-
|
63
|
-
def sent_command
|
64
|
-
@connection.stomp_connection.socket.sent_messages[0]
|
65
|
-
end
|
66
|
-
|
67
|
-
def sent_headers
|
68
|
-
@connection.stomp_connection.socket.sent_messages.drop(1).take_while { |line| !line.empty? }
|
69
|
-
end
|
70
|
-
|
71
|
-
def sent_body
|
72
|
-
(@connection.stomp_connection.socket.sent_messages.drop_while {|line| !line.empty?}).drop(1).first
|
73
|
-
end
|
74
|
-
|
75
|
-
def test_initialize
|
76
|
-
i = { :retryMax => 4,
|
77
|
-
:deadLetterQueue=>'/queue/dlq',
|
78
|
-
:login=>"",
|
79
|
-
:passcode=> "",
|
80
|
-
:host=> "localhost",
|
81
|
-
:port=> "61613",
|
82
|
-
:reliable=>FALSE,
|
83
|
-
:reconnectDelay=> 5,
|
84
|
-
:clientId=> 'cid',
|
85
|
-
:deadLetterQueuePrefix=>"DLQ."}
|
86
|
-
|
87
|
-
@connection = ActiveMessaging::Adapters::Stomp::Connection.new(i)
|
88
|
-
assert_equal 4, @connection.retryMax
|
89
|
-
assert_equal '/queue/dlq', @connection.deadLetterQueue
|
90
|
-
assert_equal "DLQ.", @connection.deadLetterQueuePrefix
|
91
|
-
assert_equal true, @connection.supports_dlq?
|
92
|
-
end
|
93
|
-
|
94
|
-
def test_disconnect
|
95
|
-
@connection.disconnect
|
96
|
-
assert_equal "DISCONNECT", sent_command
|
97
|
-
end
|
98
|
-
|
99
|
-
def test_subscribe
|
100
|
-
@connection.subscribe @d, {}
|
101
|
-
assert_equal "SUBSCRIBE", sent_command
|
102
|
-
assert sent_headers.include?("content-length:0"), "No content-length header was sent"
|
103
|
-
assert sent_headers.include?("destination:#{@d}"), "No destination header was sent"
|
104
|
-
assert_equal 1, @connection.stomp_connection.subscriptions.count
|
105
|
-
assert_equal({:'content-type'=>'text/plain; charset=UTF-8', :'content-length'=>'0', :destination=>@d}, @connection.stomp_connection.subscriptions[@d])
|
106
|
-
end
|
107
|
-
|
108
|
-
def test_unsubscribe
|
109
|
-
@connection.subscribe @d, {}
|
110
|
-
@connection.stomp_connection.socket.sent_messages = []
|
111
|
-
@connection.unsubscribe @d, {}
|
112
|
-
assert_equal "UNSUBSCRIBE", sent_command
|
113
|
-
assert sent_headers.include?("content-length:0"), "No content-length header was sent"
|
114
|
-
assert sent_headers.include?("destination:#{@d}"), "No destination header was sent"
|
115
|
-
assert_equal 0, @connection.stomp_connection.subscriptions.count
|
116
|
-
end
|
117
|
-
|
118
|
-
def test_send
|
119
|
-
@connection.send(@d, @message, {})
|
120
|
-
assert_equal 'SEND', sent_command
|
121
|
-
assert sent_headers.include?("content-length:#{@message.length}"), "No content-length header was sent"
|
122
|
-
assert sent_headers.include?("destination:#{@d}"), "No destination header was sent"
|
123
|
-
# assert_equal @message, @connection.stomp_connection.socket.sent_messages[5]
|
124
|
-
assert_equal @message, sent_body
|
125
|
-
end
|
126
|
-
|
127
|
-
def test_receive
|
128
|
-
m = @connection.receive
|
129
|
-
assert_equal @message, m.body
|
130
|
-
end
|
131
|
-
|
132
|
-
def test_received
|
133
|
-
m = @connection.receive
|
134
|
-
m.headers[:transaction] = 'test-transaction'
|
135
|
-
@connection.received m, {:ack=>'client'}
|
136
|
-
end
|
137
|
-
|
138
|
-
def test_unreceive
|
139
|
-
@connection = ActiveMessaging::Adapters::Stomp::Connection.new({:retryMax=>4, :deadLetterQueue=>'/queue/dlq'})
|
140
|
-
@connection.stomp_connection.receive = @message
|
141
|
-
m = @connection.receive
|
142
|
-
m.headers["a13g-retry-count"] = 5
|
143
|
-
@connection.unreceive m, {:ack=>'client'}
|
144
|
-
end
|
145
|
-
|
146
|
-
def test_unreceive_with_dlq_prefix
|
147
|
-
@connection = ActiveMessaging::Adapters::Stomp::Connection.new({:retryMax=>4, :deadLetterQueuePrefix=>'DLQ.'})
|
148
|
-
@connection.stomp_connection.receive = @message
|
149
|
-
m = @connection.receive
|
150
|
-
m.headers["a13g-retry-count"] = 5
|
151
|
-
@connection.unreceive m, {:ack=>'client', :destination=>"/queue/myqueue"}
|
152
|
-
end
|
153
|
-
|
154
|
-
def test_add_dlq_prefix
|
155
|
-
@connection = ActiveMessaging::Adapters::Stomp::Connection.new({:deadLetterQueuePrefix=>'DLQ.'})
|
156
|
-
dlq = @connection.add_dlq_prefix("/queue/myqueue")
|
157
|
-
assert_equal "/queue/DLQ.myqueue", dlq
|
158
|
-
dlq = @connection.add_dlq_prefix("/queue/something/myqueue")
|
159
|
-
assert_equal "/queue/something/DLQ.myqueue", dlq
|
160
|
-
dlq = @connection.add_dlq_prefix("/topic/myqueue")
|
161
|
-
assert_equal "/topic/DLQ.myqueue", dlq
|
162
|
-
dlq = @connection.add_dlq_prefix("myqueue")
|
163
|
-
assert_equal "DLQ.myqueue", dlq
|
164
|
-
end
|
165
|
-
|
166
|
-
end
|
167
|
-
|
168
|
-
end # if loaded
|