public void testValidationWithNestedGroupAndStandardFieldsFIX50SP2() throws InvalidMessage, ConfigError { final quickfix.fix50.QuoteRequest quoteRequest = new quickfix.fix50.QuoteRequest(); final quickfix.field.QuoteReqID gQuoteReqID = new quickfix.field.QuoteReqID(); gQuoteReqID.setValue("12342"); quoteRequest.setField(gQuoteReqID); final quickfix.fix50.QuoteRequest.NoRelatedSym gNoRelatedSym = buildNestedGroupWithStandardFieldsFIX50("DEFAULT_VALUE"); gNoRelatedSym.setField(new Symbol("SYM00")); gNoRelatedSym.setField(new SettlDate2("20120801")); quoteRequest.addGroup(gNoRelatedSym); quoteRequest.addGroup(gNoRelatedSym); final String sourceFIXString = quoteRequest.toString(); final DataDictionary fix50DataDictionary = new DataDictionary("FIX50SP2.xml"); final quickfix.fix50.QuoteRequest validatedMessage = (quickfix.fix50.QuoteRequest) buildValidatedMessage(sourceFIXString, fix50DataDictionary); String validateFIXString = null; if (validatedMessage != null) { validateFIXString = validatedMessage.toString(); } assertEquals("Message validation failed", sourceFIXString, validateFIXString); assertEquals(2, validatedMessage.getGroupCount(gNoRelatedSym.getFieldTag())); }
private quickfix.fix50.QuoteRequest.NoRelatedSym buildNestedGroupWithStandardFieldsFIX50( String settingValue) { // The root group final quickfix.fix50.QuoteRequest.NoRelatedSym gNoRelatedSym = new quickfix.fix50.QuoteRequest.NoRelatedSym(); // The nested group final quickfix.fix50.QuoteRequest.NoRelatedSym.NoLegs nestedgroup = new quickfix.fix50.QuoteRequest.NoRelatedSym.NoLegs(); nestedgroup.setField(new LegSymbol(settingValue)); gNoRelatedSym.addGroup(nestedgroup); // Adding a second fake nested group to avoid being the case of having // one element which is not relevant :-) final quickfix.fix50.QuoteRequest.NoRelatedSym.NoLegs oneMoreNestedgroup = new quickfix.fix50.QuoteRequest.NoRelatedSym.NoLegs(); oneMoreNestedgroup.setField(new LegSymbol("Donald")); gNoRelatedSym.addGroup(oneMoreNestedgroup); return gNoRelatedSym; }