Search in sources :

Example 1 with QuoteRequest

use of quickfix.fix44.QuoteRequest in project wso2-synapse by wso2.

the class FieldOrderingTest method testRepeatingGroupOrdering.

public void testRepeatingGroupOrdering() throws IOException {
    int[] order = new int[] { Symbol.FIELD, SecurityID.FIELD, SecurityIDSource.FIELD, Product.FIELD, QuoteType.FIELD, OrderQty.FIELD, SettlDate.FIELD, QuotePriceType.FIELD, ValidUntilTime.FIELD, ExpireTime.FIELD };
    Message message = new QuoteRequest(new QuoteReqID("20101110-2"));
    Group group = new Group(NoRelatedSym.FIELD, Symbol.FIELD, order);
    group.setField(new Symbol("TestSymbol"));
    group.setField(new SecurityID("SecurityID"));
    group.setField(new SecurityIDSource("SecurityIDSource"));
    group.setField(new Product(11));
    group.setField(new QuoteType(1));
    group.setField(new OrderQty(500));
    group.setField(new SettlDate("20151116"));
    group.setField(new QuotePriceType(1));
    group.setField(new ValidUntilTime(new Date()));
    group.setField(new ExpireTime(new Date()));
    message.addGroup(group);
    System.out.println("Original Message: " + message);
    MessageContext msgCtx = new MessageContext();
    FIXUtils.getInstance().setSOAPEnvelope(message, 1, "TestSession", msgCtx);
    OMElement msgElt = msgCtx.getEnvelope().getBody().getFirstElement();
    OMElement groupsElt = msgElt.getFirstChildWithName(new QName(FIXConstants.FIX_BODY)).getFirstChildWithName(new QName(FIXConstants.FIX_GROUPS));
    int groupId = Integer.parseInt(groupsElt.getAttributeValue(new QName(FIXConstants.FIX_FIELD_ID)));
    assertEquals(groupId, group.getFieldTag());
    // Test whether the fileds in the SOAP infoset are in the correct order
    Iterator fields = groupsElt.getFirstElement().getChildrenWithName(new QName(FIXConstants.FIX_FIELD));
    List<Integer> fieldList = new ArrayList<Integer>();
    while (fields.hasNext()) {
        OMElement fieldElt = (OMElement) fields.next();
        fieldList.add(Integer.parseInt(fieldElt.getAttributeValue(new QName(FIXConstants.FIX_FIELD_ID))));
    }
    assertEquals(order.length, fieldList.size());
    for (int i = 0; i < order.length; i++) {
        assertEquals(order[i], (int) fieldList.get(i));
    }
    // Test whether the reconstructed message preserves the group field order
    Message copy = FIXUtils.getInstance().createFIXMessage(msgCtx);
    System.out.println("Reconstructed Message: " + copy);
    List<Group> groups = copy.getGroups(NoRelatedSym.FIELD);
    assertEquals(1, groups.size());
    int[] copyOrder = groups.get(0).getFieldOrder();
    assertEquals(order.length, copyOrder.length);
    for (int i = 0; i < order.length; i++) {
        assertEquals(order[i], copyOrder[i]);
    }
    assertEquals(message.toString(), copy.toString());
}
Also used : Group(quickfix.Group) Message(quickfix.Message) ArrayList(java.util.ArrayList) OMElement(org.apache.axiom.om.OMElement) Iterator(java.util.Iterator) MessageContext(org.apache.axis2.context.MessageContext) QuoteRequest(quickfix.fix44.QuoteRequest) QName(javax.xml.namespace.QName) Date(java.util.Date)

Aggregations

ArrayList (java.util.ArrayList)1 Date (java.util.Date)1 Iterator (java.util.Iterator)1 QName (javax.xml.namespace.QName)1 OMElement (org.apache.axiom.om.OMElement)1 MessageContext (org.apache.axis2.context.MessageContext)1 Group (quickfix.Group)1 Message (quickfix.Message)1 QuoteRequest (quickfix.fix44.QuoteRequest)1