Update of /cvsroot/asterisk-java/asterisk-java/src/test/net/sf/asterisk/manager
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13098/src/test/net/sf/asterisk/manager
Modified Files:
DefaultManagerConnectionTest.java
Log Message:
Fix: event handlers are now notified in the same order as they are added
Index: DefaultManagerConnectionTest.java
===================================================================
RCS file: /cvsroot/asterisk-java/asterisk-java/src/test/net/sf/asterisk/manager/DefaultManagerConnectionTest.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -p -r1.8 -r1.9
--- DefaultManagerConnectionTest.java 13 Mar 2005 11:26:49 -0000 1.8
+++ DefaultManagerConnectionTest.java 7 Jul 2005 00:09:27 -0000 1.9
@@ -26,6 +26,7 @@ import net.sf.asterisk.manager.action.St
import net.sf.asterisk.manager.event.ConnectEvent;
import net.sf.asterisk.manager.event.DisconnectEvent;
import net.sf.asterisk.manager.event.ManagerEvent;
+import net.sf.asterisk.manager.event.NewChannelEvent;
import net.sf.asterisk.manager.response.ManagerResponse;
import org.easymock.MockControl;
@@ -592,6 +593,36 @@ public class DefaultManagerConnectionTes
socketMC.verify();
}
+
+
+ public void testDispatchEventWithMultipleEventHandlers()
+ {
+ final int count = 20;
+ ManagerEvent event;
+ MockControl listMC;
+ final List list;
+
+ // verify that event handlers are called in the correct order
+ event = new NewChannelEvent(new AsteriskServer());
+ listMC = MockControl.createStrictControl(List.class);
+ list = (List) listMC.getMock();
+ for (int i = 0; i < count; i++)
+ {
+ final int index = i;
+ list.add(new Integer(index));
+ listMC.setReturnValue(true);
+ dmc.addEventHandler(new ManagerEventHandler(){
+ public void handleEvent(ManagerEvent event)
+ {
+ list.add(new Integer(index));
+ }
+ });
+ }
+
+ listMC.replay();
+ dmc.dispatchEvent(event);
+ listMC.verify();
+ }
private class MockedManagerEventHandler implements ManagerEventHandler
{
|