}
@Test
public void testSupertypeRemove() throws Exception {
QName supertypeName = new QName("supertypeNS", "testSupertypeRemove");
RecordType supertypeRt1 = typeManager.newRecordType(supertypeName);
supertypeRt1.addFieldTypeEntry(typeManager.newFieldTypeEntry(fieldType1.getId(), false));
supertypeRt1.addFieldTypeEntry(typeManager.newFieldTypeEntry(fieldType2.getId(), false));
supertypeRt1.addFieldTypeEntry(typeManager.newFieldTypeEntry(fieldType3.getId(), false));
supertypeRt1 = typeManager.createRecordType(supertypeRt1);
QName supertypeName2 = new QName("supertypeNS", "testSupertypeRemove2");
RecordType supertypeRt2 = typeManager.newRecordType(supertypeName2);
supertypeRt2.addFieldTypeEntry(typeManager.newFieldTypeEntry(fieldType1.getId(), false));
supertypeRt2.addFieldTypeEntry(typeManager.newFieldTypeEntry(fieldType2.getId(), false));
supertypeRt2.addFieldTypeEntry(typeManager.newFieldTypeEntry(fieldType3.getId(), false));
supertypeRt2 = typeManager.createRecordType(supertypeRt2);
QName recordTypeName = new QName("recordNS", "testSupertypeRemove");
RecordType recordType = typeManager.newRecordType(recordTypeName);
recordType.addSupertype(supertypeRt1.getId(), supertypeRt1.getVersion());
recordType = typeManager.createRecordType(recordType);
recordType.addSupertype(supertypeRt2.getId(), supertypeRt2.getVersion());
recordType.removeSupertype(supertypeRt1.getId());
recordType = typeManager.updateRecordType(recordType);
assertEquals(Long.valueOf(2), recordType.getVersion());
RecordType readRecordType = typeManager.getRecordTypeById(recordType.getId(), null);
Map<SchemaId, Long> supertypes = readRecordType.getSupertypes();
assertEquals(1, supertypes.size());
assertEquals(Long.valueOf(1), supertypes.get(supertypeRt2.getId()));
}