package org.drugis.common.beans; import static org.junit.Assert.assertEquals; import java.util.Arrays; import javax.swing.event.ListDataEvent; import javax.swing.event.ListDataListener; import org.drugis.common.event.ListDataEventMatcher; import org.easymock.EasyMock; import org.junit.Before; import org.junit.Test; import com.jgoodies.binding.list.ArrayListModel; import com.jgoodies.binding.list.ObservableList; public class ReadOnlyObservableListTest { private ObservableList<String> d_origStrings; private ReadOnlyObservableList<String> d_view; @Before public void setUp() { d_origStrings = new ArrayListModel<String>(Arrays.asList("Jammer", "Helaas", "schade")); d_view = new ReadOnlyObservableList<String>(d_origStrings); } @Test public void testInit() { assertEquals(d_origStrings, d_view); } @Test(expected=UnsupportedOperationException.class) public void testCannotSet() { d_view.set(0, "hoera"); } @Test(expected=UnsupportedOperationException.class) public void testCannotAdd() { d_view.add(2, "hoera"); } @Test(expected=UnsupportedOperationException.class) public void testCannotRemove() { d_view.remove(2); } @Test public void testEventsProxied() { ListDataListener listener = EasyMock.createStrictMock(ListDataListener.class); listener.intervalAdded(ListDataEventMatcher.eqListDataEvent(new ListDataEvent(d_view, ListDataEvent.INTERVAL_ADDED, 2, 2))); listener.intervalRemoved(ListDataEventMatcher.eqListDataEvent(new ListDataEvent(d_view, ListDataEvent.INTERVAL_REMOVED, 2, 2))); listener.contentsChanged(ListDataEventMatcher.eqListDataEvent(new ListDataEvent(d_view, ListDataEvent.CONTENTS_CHANGED, 1, 1))); EasyMock.replay(listener); d_view.addListDataListener(listener); d_origStrings.add(2, "yoipi"); d_origStrings.remove(2); d_origStrings.set(1, "obstinatie"); EasyMock.verify(listener); } }