} catch (IllegalArgumentException e) {
// Expected.
}
// Push an item.
ColumnSortInfo info0 = createColumnSortInfo();
list.push(info0);
assertEquals(1, list.size());
assertEquals(info0, list.get(0));
// Push the same item.
list.push(info0);
assertEquals(1, list.size());
assertEquals(info0, list.get(0));
// Push a second item.
ColumnSortInfo info1 = createColumnSortInfo();
list.push(info1);
assertEquals(2, list.size());
assertEquals(info1, list.get(0));
assertEquals(info0, list.get(1));
// Push a third item.
ColumnSortInfo info2 = createColumnSortInfo();
list.push(info2);
assertEquals(3, list.size());
assertEquals(info2, list.get(0));
assertEquals(info1, list.get(1));
assertEquals(info0, list.get(2));
// Push item0 again. Should move back to the front
list.push(info0);
assertEquals(3, list.size());
assertEquals(info0, list.get(0));
assertEquals(info2, list.get(1));
assertEquals(info1, list.get(2));
// Push a fourth item with the same column as item1. Should remove item1.
ColumnSortInfo info1b = new ColumnSortInfo(info1.getColumn(), false);
list.push(info1b);
assertEquals(3, list.size());
assertEquals(info1b, list.get(0));
assertEquals(info0, list.get(1));
assertEquals(info2, list.get(2));