@Test
public void testReplaceGroup() throws Exception {

    final Message message = new Message();
    message.setField(new ListID("1"));
    message.setField(new BidType(0));
    message.setField(new TotNoOrders(3));
    final NewOrderList.NoOrders group = new NewOrderList.NoOrders();
    group.set(new ClOrdID("A"));
    group.set(new ListSeqNo(1));
    group.set(new Symbol("DELL"));
    group.set(new Side('1'));
    message.addGroup(group);
    group.set(new ClOrdID("B"));
    group.set(new ListSeqNo(2));
    group.set(new Symbol("LNUX"));
    group.set(new Side('2'));
    message.addGroup(group);
    group.set(new ClOrdID("C"));
    group.set(new ListSeqNo(3));
    group.set(new Symbol("RHAT"));
    group.set(new Side('3'));
    message.addGroup(group);
    group.set(new ClOrdID("D"));
    group.set(new ListSeqNo(4));
    group.set(new Symbol("AAPL"));
    group.set(new Side('4'));
    message.replaceGroup(2, group);
    final NoOrders noOrders = new NoOrders();
    assertTrue(message.hasGroup(1, group));
    assertTrue(message.hasGroup(2, group));
    assertTrue(message.hasGroup(3, group));
    assertEquals(3, message.getGroupCount(NoOrders.FIELD));
    message.getField(noOrders);
    assertEquals(3, noOrders.getValue());
    final ClOrdID clOrdID = new ClOrdID();
    message.getGroup(1, group);
    assertEquals("A", group.getField(clOrdID).getValue());
    message.getGroup(2, group);
    assertEquals("D", group.getField(clOrdID).getValue());
    message.getGroup(3, group);
    assertEquals("C", group.getField(clOrdID).getValue());
}