assertEquals(5, rel.size());
}
public void testRemoveBeforeRangeStart() {
// all elements are shifted up one
final EventList el = EventLists.eventList();
prefillWithIntegers(el, 100);
final RangedEventList rel = createBackedRangedEventList(el);
rel.setStart(10);
rel.setMaxSize(10);
assertEquals(10, rel.size());
// if the max size is in effect, the last element(s) is removed and the first is added
ListEventListener lel = new ListEventListener() {
private int count = 0;
public void listChanged(final ListEvent listEvent) {
switch (count++) {
case 0:
assertEquals(ListEvent.createOther(rel), listEvent);
break;
case 1:
assertNull(listEvent);
break;
default:
fail("Unexpected: " + listEvent);
}
}
};
rel.addListEventListener(lel);
el.remove(0);
assertEquals(10, rel.size());
lel.listChanged(null);
rel.removeListEventListener(lel);
// if max size doesn't have an effect then element(s) are removed before the start
rel.setMaxSize(Integer.MAX_VALUE);
lel = new ListEventListener() {
private int count = 0;
public void listChanged(final ListEvent listEvent) {
switch (count++) {
case 0:
assertEquals(ListEvent.createOther(rel), listEvent);
break;
case 1:
assertNull(listEvent);
break;
default:
fail("Unexpected: " + listEvent);
}
}
};
rel.addListEventListener(lel);
el.remove(0);
lel.listChanged(null);
rel.removeListEventListener(lel);
}