package org.marketcetera.quickfix.messagefactory;
import org.marketcetera.core.ClassVersion;
import org.marketcetera.core.MarketceteraTestSuite;
import org.marketcetera.quickfix.FIXMessageFactory;
import org.marketcetera.quickfix.FIXVersion;
import junit.framework.TestCase;
import junit.framework.Test;
import quickfix.Message;
import quickfix.field.OrdType;
import quickfix.field.Side;
import quickfix.field.TimeInForce;
import org.marketcetera.quickfix.FIXMessageUtilTest;
import java.math.BigDecimal;
/**
* @author toli
* @version $Id: FIXMessageAugmentor_42Test.java 16161 2012-07-16 20:27:32Z colin $
*/
@ClassVersion("$Id: FIXMessageAugmentor_42Test.java 16161 2012-07-16 20:27:32Z colin $") //$NON-NLS-1$
public class FIXMessageAugmentor_42Test extends TestCase {
public FIXMessageAugmentor_42Test(String inName) {
super(inName);
fixVersion = FIXVersion.FIX42;
msgFactory=FIXVersion.getFIXVersion(FIXVersion.FIX42.toString()).getMessageFactory();
}
public static Test suite() {
return new MarketceteraTestSuite(FIXMessageAugmentor_42Test.class);
}
public void testCountTT_applicableTypes() throws Exception {
assertEquals(18, new FIXMessageAugmentor_42().getApplicableMsgTypes().size());
}
public void testOrderWithTIFAtTheClose() throws Exception{
Message lmtOrder=fixVersion.getMessageFactory().getMsgAugmentor().newOrderSingleAugment(createNewLimitOrder());
assertEquals(OrdType.LIMIT, lmtOrder.getChar(OrdType.FIELD));
assertEquals(TimeInForce.AT_THE_CLOSE, lmtOrder.getChar(TimeInForce.FIELD));
Message mrktOrder=fixVersion.getMessageFactory().getMsgAugmentor().newOrderSingleAugment(createNewMarketOrder());
assertEquals(OrdType.MARKET, mrktOrder.getChar(OrdType.FIELD));
assertEquals(TimeInForce.AT_THE_CLOSE, mrktOrder.getChar(TimeInForce.FIELD));
Message replaceLmtOrder = fixVersion.getMessageFactory().getMsgAugmentor().cancelReplaceRequestAugment(createNewLimitOrder());
assertEquals(OrdType.LIMIT, replaceLmtOrder.getChar(OrdType.FIELD));
assertEquals(TimeInForce.AT_THE_CLOSE, replaceLmtOrder.getChar(TimeInForce.FIELD));
Message replaceMrktOrder = fixVersion.getMessageFactory().getMsgAugmentor().cancelReplaceRequestAugment(createNewMarketOrder());
assertEquals(OrdType.MARKET, replaceMrktOrder.getChar(OrdType.FIELD));
assertEquals(TimeInForce.AT_THE_CLOSE, replaceMrktOrder.getChar(TimeInForce.FIELD));
}
private Message createNewLimitOrder(){
Message message=FIXMessageUtilTest.createNOS("TOLI", new BigDecimal("123"), new BigDecimal("100"), Side.BUY, msgFactory);
message.setChar(TimeInForce.FIELD, TimeInForce.AT_THE_CLOSE);
return message;
}
private Message createNewMarketOrder(){
Message message=FIXMessageUtilTest.createMarketNOS("TOLI", new BigDecimal("100"), Side.BUY, msgFactory);
message.setChar(TimeInForce.FIELD, TimeInForce.AT_THE_CLOSE);
return message;
}
protected FIXMessageFactory msgFactory;
protected FIXVersion fixVersion;
}