### Question:
TableDesc implements ProtoObject<TableDescProto>, GsonObject, Cloneable { public String toJson() { return CatalogGsonHelper.toJson(this, TableDesc.class); } TableDesc();  TableDesc(String tableName, Schema schema, TableMeta meta,
                   Path path, boolean external);  TableDesc(String tableName, Schema schema, TableMeta meta, Path path);  TableDesc(String tableName, Schema schema, StoreType type, Options options, Path path);  TableDesc(TableDescProto proto); void setName(String tableId); String getName(); void setPath(Path uri); Path getPath(); void setMeta(TableMeta info); TableMeta getMeta(); void setSchema(Schema schem); Schema getSchema(); Schema getLogicalSchema(); void setStats(TableStats stats); boolean hasStats(); TableStats getStats(); boolean hasPartition(); PartitionMethodDesc getPartitionMethod(); void setPartitionMethod(PartitionMethodDesc partitionMethodDesc); void setExternal(boolean external); boolean isExternal(); int hashCode(); boolean equals(Object object); Object clone(); String toString(); String toJson(); TableDescProto getProto();  }### Answer:
@Test public void testToJson() throws CloneNotSupportedException, IOException { Path path = new Path(CommonTestingUtil.getTestDir(), "tajo"); TableDesc desc = new TableDesc("table1", schema, info, path); desc.setStats(stats); String json = desc.toJson(); TableDesc fromJson = CatalogGsonHelper.fromJson(json, TableDesc.class); assertEquals("equality check the object deserialized from json", desc, fromJson); assertEquals("equality between protos", desc.getProto(), fromJson.getProto()); }