@Test(expected = IllegalArgumentException.class) public void testCreateWithNonInterfaceParameter() { EventListenerSupport.create(String.class); }
@Test(expected = NullPointerException.class) public void testCreateWithNullParameter() { EventListenerSupport.create(null); }
@Test(expected = NullPointerException.class) public void testAddNullListener() { final EventListenerSupport<VetoableChangeListener> listenerSupport = EventListenerSupport.create(VetoableChangeListener.class); listenerSupport.addListener(null); }
@Test(expected = NullPointerException.class) public void testRemoveNullListener() { final EventListenerSupport<VetoableChangeListener> listenerSupport = EventListenerSupport.create(VetoableChangeListener.class); listenerSupport.removeListener(null); }
@Test public void testEventDispatchOrder() throws PropertyVetoException { final EventListenerSupport<VetoableChangeListener> listenerSupport = EventListenerSupport.create(VetoableChangeListener.class); final List<VetoableChangeListener> calledListeners = new ArrayList<>(); final VetoableChangeListener listener1 = createListener(calledListeners); final VetoableChangeListener listener2 = createListener(calledListeners); listenerSupport.addListener(listener1); listenerSupport.addListener(listener2); listenerSupport.fire().vetoableChange(new PropertyChangeEvent(new Date(), "Day", 4, 5)); assertEquals(calledListeners.size(), 2); assertSame(calledListeners.get(0), listener1); assertSame(calledListeners.get(1), listener2); }
@Test public void testRemoveListenerDuringEvent() throws PropertyVetoException { final EventListenerSupport<VetoableChangeListener> listenerSupport = EventListenerSupport.create(VetoableChangeListener.class); for (int i = 0; i < 10; ++i) { addDeregisterListener(listenerSupport); } assertEquals(listenerSupport.getListenerCount(), 10); listenerSupport.fire().vetoableChange(new PropertyChangeEvent(new Date(), "Day", 4, 5)); assertEquals(listenerSupport.getListenerCount(), 0); }
@Test public void testSerialization() throws IOException, ClassNotFoundException, PropertyVetoException { final EventListenerSupport<VetoableChangeListener> listenerSupport = EventListenerSupport.create(VetoableChangeListener.class); listenerSupport.addListener(new VetoableChangeListener() {
@Test public void testAddListenerNoDuplicates() { final EventListenerSupport<VetoableChangeListener> listenerSupport = EventListenerSupport.create(VetoableChangeListener.class); final VetoableChangeListener[] listeners = listenerSupport.getListeners(); assertEquals(0, listeners.length); assertEquals(VetoableChangeListener.class, listeners.getClass().getComponentType()); final VetoableChangeListener[] empty = listeners; //for fun, show that the same empty instance is used assertSame(empty, listenerSupport.getListeners()); final VetoableChangeListener listener1 = EasyMock.createNiceMock(VetoableChangeListener.class); listenerSupport.addListener(listener1); assertEquals(1, listenerSupport.getListeners().length); listenerSupport.addListener(listener1, false); assertEquals(1, listenerSupport.getListeners().length); listenerSupport.removeListener(listener1); assertSame(empty, listenerSupport.getListeners()); }
@Test public void testGetListeners() { final EventListenerSupport<VetoableChangeListener> listenerSupport = EventListenerSupport.create(VetoableChangeListener.class); final VetoableChangeListener[] listeners = listenerSupport.getListeners(); assertEquals(0, listeners.length); assertEquals(VetoableChangeListener.class, listeners.getClass().getComponentType()); final VetoableChangeListener[] empty = listeners; //for fun, show that the same empty instance is used assertSame(empty, listenerSupport.getListeners()); final VetoableChangeListener listener1 = EasyMock.createNiceMock(VetoableChangeListener.class); listenerSupport.addListener(listener1); assertEquals(1, listenerSupport.getListeners().length); final VetoableChangeListener listener2 = EasyMock.createNiceMock(VetoableChangeListener.class); listenerSupport.addListener(listener2); assertEquals(2, listenerSupport.getListeners().length); listenerSupport.removeListener(listener1); assertEquals(1, listenerSupport.getListeners().length); listenerSupport.removeListener(listener2); assertSame(empty, listenerSupport.getListeners()); }
@PostConstruct void initializeListeners() { this.listenerList = EventListenerSupport.create(ISlangTestCaseEventListener.class); }