}
public void testValueChangeNotification() {
Object[] backingArray = getArray(100);
BufferedCollectionValueModel vm = getBufferedCollectionValueModel(backingArray);
TestPropertyChangeListener vl = new TestPropertyChangeListener(ValueModel.VALUE_PROPERTY);
vm.addValueChangeListener(vl);
ListListModel llm = (ListListModel)vm.getValue();
assertEquals(0, vl.eventCount());
vl.reset();
llm.add(new Integer(100));
assertEquals(1, vl.eventCount());
llm.add(1, new Integer(102));
assertEquals(2, vl.eventCount());
vl.reset();
llm.addAll(getCollection(ArrayList.class, 101));
assertEquals(1, vl.eventCount());
llm.addAll(1, getCollection(ArrayList.class, 101));
assertEquals(2, vl.eventCount());
vl.reset();
llm.remove(1);
assertEquals(1, vl.eventCount());
llm.removeAll(getCollection(ArrayList.class, 101));
assertEquals(2, vl.eventCount());
vl.reset();
llm.set(1, llm.get(1));
assertEquals(0, vl.eventCount());
vl.reset();
llm.clear();
assertEquals(1, vl.eventCount());
}