package org.marketcetera.quickfix.customfields; import junit.framework.Test; import junit.framework.TestCase; import org.marketcetera.core.ClassVersion; import org.marketcetera.core.MarketceteraTestSuite; import org.marketcetera.quickfix.FIXMessageFactory; import org.marketcetera.quickfix.FIXVersion; import org.marketcetera.trade.Equity; import quickfix.DataDictionary; import quickfix.Message; import quickfix.field.SubscriptionRequestType; import java.util.Arrays; import java.util.Date; import java.util.GregorianCalendar; /** * Verify that custom fields are created and verified by data dictionary * @author toli * @version $Id: CustomFieldsTest.java 16154 2012-07-14 16:34:05Z colin $ */ @ClassVersion("$Id: CustomFieldsTest.java 16154 2012-07-14 16:34:05Z colin $") //$NON-NLS-1$ public class CustomFieldsTest extends TestCase { public CustomFieldsTest(String inName) { super(inName); } public static Test suite() { return new MarketceteraTestSuite(CustomFieldsTest.class); } public void testHistoricalMarketDataRequest() throws Exception { FIXMessageFactory msgFactory = FIXVersion.FIX44.getMessageFactory(); Message request = msgFactory.newMarketDataRequest("123", Arrays.asList(new Equity("IFLI"))); //$NON-NLS-1$ //$NON-NLS-2$ request.setField(new SubscriptionRequestType(CustomFIXFieldConstants.SUBSCRIPTION_REQUEST_TYPE_HISTORICAL)); request.setField(new DateFrom(new GregorianCalendar(2001, 4, 1).getTime())); request.setField(new DateTo(new Date())); DataDictionary dict = new DataDictionary(FIXVersion.FIX44.getDataDictionaryURL()); dict.validate(request, true); // now round-trip it Message rountrip = new Message(request.toString(), dict, true); dict.validate(rountrip, true); } }