### Question:
Schema implements ProtoObject<SchemaProto>, Cloneable, GsonObject { @Override public SchemaProto getProto() { builder.clearFields(); if (this.fields != null) { for(Column col : fields) { builder.addFields(col.getProto()); } } return builder.build(); } Schema();  Schema(SchemaProto proto);  Schema(Schema schema);  Schema(Column [] columns); void setQualifier(String qualifier); int size(); Column getColumn(int id); Column getColumn(Column column); Column getColumn(String name); int getColumnId(String name); int getColumnIdByName(String colName); List<Column> getColumns(); boolean contains(String name); boolean contains(Column column); boolean containsByQualifiedName(String qualifiedName); boolean containsByName(String colName); boolean containsAll(Collection<Column> columns); synchronized Schema addColumn(String name, Type type); synchronized Schema addColumn(String name, Type type, int length); synchronized Schema addColumn(String name, DataType dataType); synchronized void addColumn(Column column); synchronized void addColumns(Schema schema); @Override int hashCode(); @Override boolean equals(Object o); @Override Object clone(); @Override SchemaProto getProto(); String toString(); @Override String toJson(); Column [] toArray();  }### Answer:
@Test public final void testSchemaSchemaProto() { Schema schema2 = new Schema(schema.getProto()); assertEquals(schema, schema2); }
@Test public final void testGetProto() { SchemaProto proto = schema.getProto(); assertEquals("name", proto.getFields(0).getName()); assertEquals("age", proto.getFields(1).getName()); assertEquals("addr", proto.getFields(2).getName()); }
@Test public final void testProto() { Schema schema2 = new Schema(schema.getProto()); SchemaProto proto = schema2.getProto(); Schema fromJson = new Schema(proto); assertEquals(schema2, fromJson); }