Repository URL to install this package:
|
Version:
1.15.1 ▾
|
require 'quickfix_ruby'
require 'test/unit'
class TooHigh < Quickfix::StringField
def initialize(data = nil)
if( data == nil )
super(501)
else
super(501, data)
end
end
end
class DataDictionaryTestCase < Test::Unit::TestCase
def setup
@object = Quickfix::DataDictionary.new()
assert_not_nil( @object )
end
def test_addMsgType
assert( !@object.isMsgType("A") )
@object.addMsgType("A")
assert( @object.isMsgType("A") )
end
def test_addMsgField
assert( !@object.isMsgField( "A", 10 ) )
assert( !@object.isMsgField( "Z", 50 ) )
@object.addMsgField( "A", 10 )
@object.addMsgField( "Z", 50 )
assert( @object.isMsgField( "A", 10 ) )
assert( @object.isMsgField( "Z", 50 ) )
assert( !@object.isMsgField( "A", 50 ) )
assert( !@object.isMsgField( "Z", 10 ) )
end
def test_addHeaderField
assert( !@object.isHeaderField( 56 ) )
assert( !@object.isHeaderField( 49 ) )
@object.addHeaderField( 56, true )
@object.addHeaderField( 49, true )
assert( @object.isHeaderField( 56 ) )
assert( @object.isHeaderField( 49 ) )
end
def test_addTrailerField
assert( !@object.isTrailerField( 10 ) )
@object.addTrailerField( 10, true )
assert( @object.isTrailerField( 10 ) )
end
def test_addRequiredField
assert( !@object.isRequiredField( "A", 10 ) )
assert( !@object.isRequiredField( "Z", 50 ) )
@object.addRequiredField( "A", 10 )
@object.addRequiredField( "Z", 50 )
assert( @object.isRequiredField( "A", 10 ) )
assert( @object.isRequiredField( "Z", 50 ) )
assert( !@object.isRequiredField( "A", 50 ) )
assert( !@object.isRequiredField( "Z", 10 ) )
end
def test_addFieldValue
assert( !@object.isFieldValue( 12, "f" ) )
assert( !@object.isFieldValue( 12, "g" ) )
assert( !@object.isFieldValue( 15, "1" ) )
assert( !@object.isFieldValue( 18, "2" ) )
assert( !@object.isFieldValue( 167, "FUT" ) )
@object.addFieldValue( 12, "f" )
@object.addFieldValue( 12, "g" )
@object.addFieldValue( 15, "1" )
@object.addFieldValue( 18, "2" )
@object.addFieldValue( 167, "FUT" )
assert( @object.isFieldValue( 12, "f" ) )
assert( @object.isFieldValue( 12, "g" ) )
assert( @object.isFieldValue( 15, "1" ) )
assert( @object.isFieldValue( 18, "2" ) )
assert( @object.isFieldValue( 167, "FUT" ) )
end
def test_addGroup
@object.setVersion( "FIX.4.2" )
group1 = Quickfix::DataDictionary.new
group1.addMsgType( "1" )
group2 = Quickfix::DataDictionary.new
group2.addMsgType( "2" )
group3 = Quickfix::DataDictionary.new
group3.addMsgType( "3" )
@object.addGroup( "A", 100, 101, group1 )
@object.addGroup( "A", 200, 201, group2 )
@object.addGroup( "A", 300, 301, group3 )
result = @object.getGroup( "A", 100 )
assert_equal( 101, result[0] )
assert( result[1].isMsgType( "1" ) )
result = @object.getGroup( "A", 200 )
assert_equal( 201, result[0] )
assert( result[1].isMsgType( "2" ) )
result = @object.getGroup( "A", 300 )
assert_equal( 301, result[0] )
assert( result[1].isMsgType( "3" ) )
end
def test_addFieldName
@object.setVersion( "FIX.4.2" )
@object.addFieldName( 1, "Account" )
@object.addFieldName( 11, "ClOrdID" )
@object.addFieldName( 8, "BeginString" )
s = String.new
@object.getFieldName(1)
assert_equal( "Account", @object.getFieldName(1) )
assert_equal( 1, @object.getFieldTag("Account") )
assert_equal( "ClOrdID", @object.getFieldName(11) )
assert_equal( 11, @object.getFieldTag("ClOrdID") )
assert_equal( "BeginString", @object.getFieldName(8) )
assert_equal( 8, @object.getFieldTag("BeginString") )
end
def test_addValueName
@object.setVersion( "FIX.4.2" )
@object.addValueName( 12, "0", "VALUE_12_0" )
@object.addValueName( 12, "B", "VALUE_12_B" )
@object.addValueName( 23, "BOO", "VALUE_23_BOO" )
assert_equal( "VALUE_12_0", @object.getValueName(12, "0") )
assert_equal( "VALUE_12_B", @object.getValueName(12, "B") )
assert_equal( "VALUE_23_BOO", @object.getValueName(23, "BOO") )
end
def test_checkValidTagNumber
@object.setVersion( Quickfix::BeginString_FIX40() )
@object.addField( Quickfix::BeginString.field )
@object.addField( Quickfix::BodyLength.field )
@object.addField( Quickfix::MsgType.field )
@object.addField( Quickfix::CheckSum.field )
@object.addField( Quickfix::TestReqID.field )
@object.addMsgType( Quickfix::MsgType_TestRequest() )
@object.addMsgField( Quickfix::MsgType_TestRequest(), Quickfix::TestReqID.field )
testReqID = Quickfix::TestReqID.new( "1" )
message = Quickfix40::TestRequest.new()
message.setField( testReqID )
message.setField( TooHigh.new( "value" ) )
begin
@object.validate( message )
assert( false )
rescue Quickfix::Exception
end
@object.addField( 501 )
@object.addMsgField( Quickfix::MsgType_TestRequest(), 501 )
begin
@object.validate( message )
rescue Quickfix::Exception
assert( false )
end
message.setField( 5000, "value" )
begin
@object.validate( message )
assert( false )
rescue Quickfix::Exception
end
@object.checkUserDefinedFields( false )
begin
@object.validate( message )
rescue Quickfix::Exception
assert( false )
end
end
def test_checkHasValue
message = Quickfix40::TestRequest.new
message.setField( Quickfix::TestReqID.new )
begin
@object.validate( message )
assert( false )
rescue Quickfix::Exception
end
end
def test_checkIsInMessage
@object.setVersion( Quickfix::BeginString_FIX40() )
@object.addField( Quickfix::BeginString.field )
@object.addField( Quickfix::BodyLength.field )
@object.addField( Quickfix::MsgType.field )
@object.addField( Quickfix::CheckSum.field )
@object.addField( Quickfix::TestReqID.field )
@object.addField( Quickfix::Symbol.field )
@object.addMsgType( Quickfix::MsgType_TestRequest() )
@object.addMsgField( Quickfix::MsgType_TestRequest(), Quickfix::TestReqID.field )
testReqID = Quickfix::TestReqID.new( "1" )
message = Quickfix40::TestRequest.new
message.setField( testReqID )
begin
@object.validate( message )
rescue Quickfix::Exception
assert( false )
end
message.setField( Quickfix::Symbol.new("MSFT") )
begin
@object.validate( message )
assert( false )
rescue Quickfix::Exception
end
end
def test_checkHasRequired
@object.setVersion( Quickfix::BeginString_FIX40() )
@object.addField( Quickfix::BeginString.field )
@object.addField( Quickfix::BodyLength.field )
@object.addField( Quickfix::MsgType.field )
@object.addField( Quickfix::SenderCompID.field )
@object.addField( Quickfix::TargetCompID.field )
@object.addHeaderField( Quickfix::SenderCompID.field, true )
@object.addHeaderField( Quickfix::TargetCompID.field, false )
@object.addField( Quickfix::CheckSum.field )
@object.addField( Quickfix::TestReqID.field )
@object.addMsgType( Quickfix::MsgType_TestRequest() )
@object.addMsgField( Quickfix::MsgType_TestRequest(), Quickfix::TestReqID.field )
@object.addRequiredField( Quickfix::MsgType_TestRequest(), Quickfix::TestReqID.field )
message = Quickfix40::TestRequest.new
begin
@object.validate( message )
assert( false )
rescue Quickfix::Exception
end
message.getHeader().setField( Quickfix::SenderCompID.new("SENDER") )
begin
@object.validate( message )
assert( false )
rescue Quickfix::Exception
end
message.setField( Quickfix::TestReqID.new( "1" ) )
begin
@object.validate( message )
rescue Quickfix::Exception
assert( false )
end
message.getHeader().removeField( Quickfix::SenderCompID.field )
message.setField( Quickfix::SenderCompID.new("SENDER") )
begin
@object.validate( message )
assert( false )
rescue Quickfix::Exception
end
end
end