Search in sources :

Example 1 with FieldEnumConverter

use of org.apache.parquet.thrift.ThriftRecordConverter.FieldEnumConverter in project parquet-mr by apache.

the class TestThriftRecordConverter method testUnknownEnumThrowsGoodException.

@Test
public void testUnknownEnumThrowsGoodException() throws Exception {
    EnumType et = new EnumType(Arrays.asList(new EnumValue(77, "hello")));
    ThriftField field = new ThriftField("name", (short) 1, Requirement.REQUIRED, et);
    ArrayList<TProtocol> events = new ArrayList<TProtocol>();
    FieldEnumConverter conv = new FieldEnumConverter(events, field);
    conv.addBinary(Binary.fromString("hello"));
    assertEquals(1, events.size());
    assertEquals(77, events.get(0).readI32());
    try {
        conv.addBinary(Binary.fromString("FAKE_ENUM_VALUE"));
        fail("this should throw");
    } catch (ParquetDecodingException e) {
        assertEquals("Unrecognized enum value: FAKE_ENUM_VALUE known values: {Binary{\"hello\"}=77} in {\n" + "  \"name\" : \"name\",\n" + "  \"fieldId\" : 1,\n" + "  \"requirement\" : \"REQUIRED\",\n" + "  \"type\" : {\n" + "    \"id\" : \"ENUM\",\n" + "    \"values\" : [ {\n" + "      \"id\" : 77,\n" + "      \"name\" : \"hello\"\n" + "    } ]\n" + "  }\n" + "}", e.getMessage());
    }
}
Also used : ParquetDecodingException(org.apache.parquet.io.ParquetDecodingException) TProtocol(org.apache.thrift.protocol.TProtocol) EnumType(org.apache.parquet.thrift.struct.ThriftType.EnumType) EnumValue(org.apache.parquet.thrift.struct.ThriftType.EnumValue) ArrayList(java.util.ArrayList) ThriftField(org.apache.parquet.thrift.struct.ThriftField) FieldEnumConverter(org.apache.parquet.thrift.ThriftRecordConverter.FieldEnumConverter) Test(org.junit.Test)

Aggregations

ArrayList (java.util.ArrayList)1 ParquetDecodingException (org.apache.parquet.io.ParquetDecodingException)1 FieldEnumConverter (org.apache.parquet.thrift.ThriftRecordConverter.FieldEnumConverter)1 ThriftField (org.apache.parquet.thrift.struct.ThriftField)1 EnumType (org.apache.parquet.thrift.struct.ThriftType.EnumType)1 EnumValue (org.apache.parquet.thrift.struct.ThriftType.EnumValue)1 TProtocol (org.apache.thrift.protocol.TProtocol)1 Test (org.junit.Test)1