@Nullable
  @Override
  public GenericRow decode(byte[] payload, GenericRow destination) {
    try {
      destination = (GenericRow) _decodeMethod.invoke(null, payload, destination);
    } catch (Exception e) {
      throw new RuntimeException(e);
    }
    return destination;
  }
@Test
  public void testHappyCase()
      throws Exception {
    ProtoBufCodeGenMessageDecoder messageDecoder =
        setupDecoder("sample.jar", "org.apache.pinot.plugin.inputformat.protobuf.Sample$SampleRecord",
            getFieldsInSampleRecord());
    Sample.SampleRecord sampleRecord = getSampleRecordMessage();
    GenericRow destination = new GenericRow();
    messageDecoder.decode(sampleRecord.toByteArray(), destination);
    assertNotNull(destination.getValue("email"));
    assertNotNull(destination.getValue("name"));
    assertNotNull(destination.getValue("id"));

    assertEquals(destination.getValue("email"), "foobar@hello.com");
    assertEquals(destination.getValue("name"), "Alice");
    assertEquals(destination.getValue("id"), 18);
  }