def test_transaction_with_client_side_redelivery
@client.publish make_destination, message_text
@client.begin 'tx1'
message = nil
sid = nil
if @client.protocol() == Stomp::SPL_10
@client.subscribe(make_destination, :ack => 'client') { |m| message = m }
else
sid = @client.uuid()
@client.subscribe(make_destination, :ack => 'client', :id => sid) { |m| message = m }
end
sleep 0.1 while message.nil?
assert_equal message_text, message.body
if @client.protocol() == Stomp::SPL_10
@client.acknowledge message, :transaction => 'tx1'
else
@client.acknowledge message, :transaction => 'tx1', :subscription => sid
end
message = nil
@client.abort 'tx1'
sleep 0.1 while message.nil?
assert_not_nil message
assert_equal message_text, message.body
assert_nothing_raised {
@client.begin 'tx2'
case @client.protocol()
when Stomp::SPL_10
@client.acknowledge message, :transaction => 'tx2'
when Stomp::SPL_11
@client.acknowledge message, :transaction => 'tx2', :subscription => sid
else
end
@client.commit 'tx2'
}
checkEmsg(@client)
end