@Test public void decodesMissingOptionalEnumValuesAsSentinelsUsingAsEnumMethods() throws Exception { final Decoder decoder = (Decoder)enumTestMessage.getConstructor().newInstance(); decode(ET_ONLY_REQ_FIELDS, decoder); assertEquals(ENUM_MISSING_CHAR, getRepresentation(get(decoder, CHAR_ENUM_OPT + "AsEnum"))); assertEquals(ENUM_MISSING_INT, getRepresentation(get(decoder, INT_ENUM_OPT + "AsEnum"))); assertEquals(ENUM_MISSING_STRING, getRepresentation(get(decoder, STRING_ENUM_OPT + "AsEnum"))); assertValid(decoder); }
@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); }
@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); }
@Test public void decodesMissingRequiredEnumFieldUsingAsEnumMethod() throws Exception { final Decoder decoder = (Decoder)enumTestMessage.getConstructor().newInstance(); decode(ET_MISSING_REQ_FIELD, decoder); assertEquals(UNKNOWN_NAME, get(decoder, STRING_ENUM_REQ + "AsEnum").toString()); assertEquals(ENUM_UNKNOWN_STRING, getRepresentation(get(decoder, STRING_ENUM_REQ + "AsEnum"))); assertInvalid(decoder); }
@Test public void shouldBeAbleToExtractEnumFromStringFields() throws Exception { final Decoder decoder = decodeHeartbeat(NO_OPTIONAL_MESSAGE); final Object onBehalfEnum = get(decoder, "onBehalfOfCompIDAsEnum"); assertEquals("abc", getRepresentation(onBehalfEnum)); }