public static void reset(final Encoder encoder) throws Exception { call(encoder, "reset"); }
private int getGroupField(final Object group) throws Exception { return (int)get(group, "groupField"); }
private AsciiSequenceView getOptionalCurrencyFieldAsView(final Decoder decoder) throws Exception { return getAsciiSequenceView(decoder, "currencyField"); }
private void setupHeader(final Encoder encoder, final String beginString) throws Exception { final Object header = Reflection.get(encoder, "header"); setCharSequence(header, "beginString", beginString); setCharSequence(header, MSG_TYPE, "0"); }
private void setupTrailer(final Encoder encoder, final String signature) throws Exception { final Object trailer = Reflection.get(encoder, "trailer"); if (signature.length() > 0) { setByteArray(trailer, "signature", signature.getBytes(StandardCharsets.US_ASCII)); setInt(trailer, "signatureLength", signature.length()); } setCharSequence(trailer, "checkSum", "12"); }
@Test public void shouldDecodeNestedRepeatingGroups() throws Exception { final Decoder decoder = decodeHeartbeat(NESTED_GROUP_MESSAGE); assertEquals(1, getNoEgGroupGroupCounter(decoder)); final Object group = getEgGroup(decoder); assertEquals(1, getGroupField(group)); assertNull(next(group)); final Object nestedGroup = getNestedGroup(group); assertEquals( heartbeat.getName() + "$EgGroupGroupDecoder$NestedGroupGroupDecoder", nestedGroup.getClass().getName()); assertEquals(1, get(nestedGroup, "nestedField")); assertNull(next(nestedGroup)); assertValid(decoder); }
private void setupComponent(final Encoder encoder) throws Exception { final Object egComponent = getEgComponent(encoder); setInt(egComponent, COMPONENT_FIELD, 2); Object componentGroup = getComponentGroup(egComponent, 2); setComponentGroupField(componentGroup, 1); componentGroup = next(componentGroup); setComponentGroupField(componentGroup, 2); }
@Test public void decodesEnumValuesUsingAsEnumMethods() throws Exception { final Decoder decoder = (Decoder)enumTestMessage.getConstructor().newInstance(); decode(ET_ALL_FIELDS, decoder); assertEquals('a', getRepresentation(get(decoder, CHAR_ENUM_OPT + "AsEnum"))); assertEquals(10, getRepresentation(get(decoder, INT_ENUM_OPT + "AsEnum"))); assertEquals("alpha", getRepresentation(get(decoder, STRING_ENUM_OPT + "AsEnum"))); assertEquals('c', getRepresentation(get(decoder, CHAR_ENUM_REQ + "AsEnum"))); assertEquals(30, getRepresentation(get(decoder, INT_ENUM_REQ + "AsEnum"))); assertEquals("gamma", getRepresentation(get(decoder, STRING_ENUM_REQ + "AsEnum"))); assertValid(decoder); }
private void assertNestedRepeating(final Object group, final int groupField, final int nestedValue1, final int nestedValue2) throws Exception { assertEquals(groupField, getGroupField(group)); Object nestedGroup = getNestedGroup(group); assertEquals( heartbeat.getName() + "$EgGroupGroupDecoder$NestedGroupGroupDecoder", nestedGroup.getClass().getName()); final boolean expectingValue1 = nestedValue1 != CodecUtil.MISSING_INT; assertEquals(expectingValue1, get(nestedGroup, "hasNestedField")); if (expectingValue1) { assertEquals(nestedValue1, get(nestedGroup, "nestedField")); } nestedGroup = next(nestedGroup); final boolean expectingValue2 = nestedValue2 != CodecUtil.MISSING_INT; assertEquals(expectingValue2, get(nestedGroup, "hasNestedField")); if (expectingValue2) { assertEquals(nestedValue2, get(nestedGroup, "nestedField")); } }
private void setEgGroupToTwoElements(final Encoder encoder) throws Exception { Object egGroup = getEgGroup(encoder, 2); setGroupField(egGroup, 1); egGroup = next(egGroup); setGroupField(egGroup, 2); }
@Test public void shouldResetAllRepeatingGroupEntries() throws Exception { final Decoder decoder = decodeHeartbeat(MULTIPLE_ENTRY_REPEATING_GROUP); Object group = get(decoder, "secondEgGroupGroup"); assertEquals("TOM", get(group, "secondGroupFieldAsString")); group = next(group); assertEquals("ANDREY", get(group, "secondGroupFieldAsString")); decoder.reset(); decode(MULTIPLE_ENTRY_REPEATING_GROUP_WITHOUT_OPTIONAL, decoder); group = get(decoder, "secondEgGroupGroup"); assertNull(get(group, "secondGroupFieldAsString")); group = next(group); assertNull(get(group, "secondGroupFieldAsString")); }
private char[] getMultiValStringField(final Decoder decoder) throws Exception { return getChars(decoder, "multiValueStringField"); }
@Test public void shouldResetGroups() throws Exception { final Encoder encoder = newHeartbeat(); final Object group = getEgGroup(encoder, 1); setGroupField(group, 1); setNestedField(group); reset(encoder); setRequiredFields(encoder); assertEncodesTo(encoder, NO_OPTIONAL_MESSAGE); }
private Object setEgGroupToOneElement(final Encoder encoder) throws Exception { final Object egGroup = getEgGroup(encoder, 1); setGroupField(egGroup, 2); return egGroup; }
public static void setField( final Object object, final String fieldName, final Object value) throws Exception { field(object, fieldName).set(object, value); }
private byte[] getDataField(final Decoder decoder) throws Exception { return getBytes(decoder, DATA_FIELD); }
private void canIterateOverGroupUsingForEach(final Decoder decoder) throws Exception { final Iterable<?> iterator = getEgGroupIterable(decoder); int count = 0; for (final Object group : iterator) { count++; assertEquals(count, getGroupField(group)); } assertEquals(2, count); }
@Test public void shouldDecodeNestedRepeatingGroupsWithoutValidation() throws Exception { final Decoder decoder = decodeHeartbeatWithoutValidation(NESTED_GROUP_MESSAGE); assertEquals(1, getNoEgGroupGroupCounter(decoder)); final Object group = getEgGroup(decoder); assertEquals(1, getGroupField(group)); assertNull(next(group)); final Object nestedGroup = getNestedGroup(group); assertEquals( heartbeat.getName() + "$EgGroupGroupDecoder$NestedGroupGroupDecoder", nestedGroup.getClass().getName()); assertEquals(1, get(nestedGroup, "nestedField")); assertNull(next(nestedGroup)); assertValid(decoder); }
@Test public void decodesBadEnumValuesAsSentinelsUsingAsEnumMethods() throws Exception { final Decoder decoder = (Decoder)enumTestMessage.getConstructor().newInstance(); decode(ET_ONLY_REQ_FIELDS_WITH_BAD_VALUES, decoder); assertEquals(ENUM_UNKNOWN_CHAR, getRepresentation(get(decoder, CHAR_ENUM_REQ + "AsEnum"))); assertEquals(ENUM_UNKNOWN_INT, getRepresentation(get(decoder, INT_ENUM_REQ + "AsEnum"))); assertEquals(ENUM_UNKNOWN_STRING, getRepresentation(get(decoder, STRING_ENUM_REQ + "AsEnum"))); assertInvalid(decoder); }
private void assertRepeatingGroupDecoded(final Decoder decoder) throws Exception { assertEquals(2, getNoEgGroupGroupCounter(decoder)); Object group = getEgGroup(decoder); assertEquals( heartbeat.getName() + "$EgGroupGroupDecoder", group.getClass().getName()); assertEquals(1, getGroupField(group)); group = next(group); assertEquals(2, getGroupField(group)); assertNull(next(group)); }