### Question:
FullSchemaInfo extends BasicSchemaInfo implements MetadataAware<FullSchemaInfo> { public static <T extends FullSchemaInfo> FullSchemaInfo cast(T schemaInfo) { return builder(schemaInfo).build(); } FullSchemaInfo(
            @JsonProperty("subject") String subject,
            @JsonProperty("version") int version,
            @JsonProperty("schemaRegistryId") int schemaRegistryId,
            @JsonProperty("schemaJson") String schemaJson,
            @JsonProperty("compatibilityLevel") AvroCompatibilityLevel compatibilityLevel,
            @JsonProperty("mode") Mode mode,
            @JsonProperty("deleted") boolean deleted,
            @JsonProperty("versionLatest") boolean versionLatest,
            @JsonProperty("metadata") Map<MetadataKey, MetadataValue> metadata); AvroCompatibilityLevel getCompatibilityLevel(); Mode getMode(); boolean isDeleted(); boolean isVersionLatest(); @Override Map<MetadataKey, MetadataValue> getMetadata(); @JsonIgnore @Override MetadataBrowser<FullSchemaInfo> getMetadataBrowser(); @Override int hashCode(); @Override boolean equals(Object obj); @Override String toString(); BasicSchemaInfo toBasic(); IdentitySchemaInfo toIdentity(); @Override FullSchemaInfo toSchemaWithFormattedMetadata(PartFormatter partFormatter); @SuppressWarnings("rawtypes") @Override Builder toBuilder(); static Builder<? extends Builder<?>> builder(); static Builder<? extends Builder<?>> builder(FullSchemaInfo origin); static FullSchemaInfo cast(T schemaInfo);  }### Answer:
@Test public void testCasted() throws Exception { FullSchemaInfo origin = SchemaTestData.randomFullSchemaInfo(); BasicSchemaInfo basicSchemaInfo = BasicSchemaInfo.cast(origin); Assert.assertNotNull(basicSchemaInfo); Assert.assertNotEquals(origin, basicSchemaInfo); IdentitySchemaInfo schemaInfo = IdentitySchemaInfo.cast(origin); Assert.assertNotNull(schemaInfo); Assert.assertNotEquals(origin, schemaInfo); }