### Question:
TableMeta implements ProtoObject<CatalogProtos.TableProto>, GsonObject, Cloneable { public TableProto getProto() { TableProto.Builder builder = TableProto.newBuilder(); builder.setDataFormat(dataFormat); builder.setParams(propertySet.getProto()); return builder.build(); } TableMeta(String dataFormat, KeyValueSet propertySet);  TableMeta(TableProto proto); String getDataFormat(); void setPropertySet(KeyValueSet options); KeyValueSet getPropertySet(); void putProperty(String key, String val); boolean containsProperty(String key); String getProperty(String key); String getProperty(String key, String defaultValue); Map<String,String> toMap(); boolean equals(Object object); int hashCode(); @Override Object clone(); String toString(); TableProto getProto(); @Override String toJson(); void mergeProtoToLocal();  }### Answer:
@Test public void testTableMetaTableProto() { TableMeta meta1 = CatalogUtil.newTableMeta(BuiltinStorages.TEXT, conf); TableMeta meta2 = new TableMeta(meta1.getProto()); assertEquals(meta1, meta2); }
@Test public void testGetProto() { TableProto proto = meta.getProto(); TableMeta newMeta = new TableMeta(proto); assertEquals(meta, newMeta); }