public void testAllIndexColumnsReplaced() {
// given an index consisting of two columns which are replaced in a newer index version
DBTable table = createTableWithColumns("tbl", 4);
DBIndex index1 = new DBNonUniqueIndex("idx", true, table, "col1", "col2");
DBIndex index2 = new DBNonUniqueIndex("idx", true, table, "col3", "col4");
TableChange tableChange = new TableChange(table, null);
// when performing a comparison
new IndexComparator(config).compareObjects(index1, index2, tableChange);
// then the result must be deletion of the former index version and creation of the new one
System.out.println(tableChange);
List<StructuralChange<?>> indexChanges = tableChange.getSubChanges();
assertEquals(2, indexChanges.size());
assertChange(IndexDeletion.class, DBIndex.class, "idx", ChangeSeverity.REORGANIZATION, indexChanges.get(0));
assertChange(IndexCreation.class, DBIndex.class, "idx", ChangeSeverity.REORGANIZATION, indexChanges.get(1));
}