### Question:
TableMeta implements ProtoObject<CatalogProtos.TableProto>, GsonObject, Cloneable { @Override public String toJson() { mergeProtoToLocal(); return CatalogGsonHelper.toJson(this, TableMeta.class); } private  TableMeta();  TableMeta(StoreType type, Options options);  TableMeta(TableProto proto); StoreType getStoreType(); void setOptions(Options options); void putOption(String key, String val); String getOption(String key); String getOption(String key, String defaultValue); Options getOptions(); 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 testToJson() { String json = meta.toJson(); TableMeta fromJson = CatalogGsonHelper.fromJson(json, TableMeta.class); assertEquals(meta, fromJson); assertEquals(meta.getProto(), fromJson.getProto()); }