55 lines
1.8 KiB
Ruby
55 lines
1.8 KiB
Ruby
require 'ReflectorClient'
|
|
require 'runit/testcase'
|
|
require 'ReflectorServer'
|
|
require "thread"
|
|
|
|
class ReflectorClientTestCase < RUNIT::TestCase
|
|
|
|
def test_reflectMessages
|
|
|
|
serverMessages = "E8=FIX.4.2\0019=13\00135=AC\001108=30\00110=31\001\n"
|
|
serverMessages += "I8=FIX.4.2\0019=13\00135=AS\001108=10\00110=31\001\n"
|
|
serverMessages += "E8=FIX.4.2\0019=13\00135=BC\001108=25\00110=31\001\n"
|
|
serverMessages += "I8=FIX.4.2\0019=13\00135=BS\001108=15\00110=31\001\n"
|
|
|
|
clientMessages = "iCONNECT\n"
|
|
clientMessages += "I8=FIX.4.2\0019=13\00135=AC\001108=30\00110=31\001\n"
|
|
clientMessages += "E8=FIX.4.2\0019=13\00135=AS\001108=10\00110=31\001\n"
|
|
clientMessages += "I8=FIX.4.2\0019=13\00135=BC\001108=25\00110=31\001\n"
|
|
clientMessages += "E8=FIX.4.2\0019=13\00135=BS\001108=15\00110=31\001\n"
|
|
clientMessages += "iDISCONNECT\n"
|
|
|
|
server = ReflectorServer.new(serverMessages)
|
|
client = ReflectorClient.new(clientMessages, "localhost", RUNIT::TestCase.port)
|
|
|
|
def client.next
|
|
begin
|
|
return @queue.pop 0
|
|
rescue
|
|
return nil
|
|
end
|
|
end
|
|
|
|
def client.compareAction(e, a)
|
|
if !defined? @queue
|
|
@queue = Queue.new
|
|
end
|
|
@queue.push(e)
|
|
@queue.push(a)
|
|
end
|
|
|
|
Thread.start do
|
|
server.listen(RUNIT::TestCase.port)
|
|
end
|
|
server.wait
|
|
|
|
client.start()
|
|
assert_equals("8=FIX.4.2\0019=13\00135=AS\001108=10\00110=31\001", client.next)
|
|
assert_equals("8=FIX.4.2\0019=13\00135=AS\001108=10\00110=31\001", client.next)
|
|
assert_equals("8=FIX.4.2\0019=13\00135=BS\001108=15\00110=31\001", client.next)
|
|
assert_equals("8=FIX.4.2\0019=13\00135=BS\001108=15\00110=31\001", client.next)
|
|
assert_equals(nil, client.next)
|
|
server.stop
|
|
end
|
|
|
|
end |