public MessageType convert(Class<? extends TBase<?, ?>> thriftClass) {
    return convert(toStructType(thriftClass));
  }
@Test
  public void testToMessageType() throws Exception {
    String expected = "message ParquetSchema {\n" + "  optional group persons (LIST) = 1 {\n"
        + "    repeated group persons_tuple {\n"
        + "      required group name = 1 {\n"
        + "        optional binary first_name (UTF8) = 1;\n"
        + "        optional binary last_name (UTF8) = 2;\n"
        + "      }\n"
        + "      optional int32 id = 2;\n"
        + "      optional binary email (UTF8) = 3;\n"
        + "      optional group phones (LIST) = 4 {\n"
        + "        repeated group phones_tuple {\n"
        + "          optional binary number (UTF8) = 1;\n"
        + "          optional binary type (ENUM) = 2;\n"
        + "        }\n"
        + "      }\n"
        + "    }\n"
        + "  }\n"
        + "}";
    ThriftSchemaConverter schemaConverter = new ThriftSchemaConverter();
    final MessageType converted = schemaConverter.convert(AddressBook.class);
    assertEquals(MessageTypeParser.parseMessageType(expected), converted);
  }