/* * This file is part of JGAP. * * JGAP offers a dual license model containing the LGPL as well as the MPL. * * For licensing information please see the file license.txt included with JGAP * or have a look at the top of class org.jgap.Chromosome which representatively * includes the JGAP license policy applicable for any file delivered with JGAP. */ package org.jgap.event; import java.util.*; import junit.framework.*; import org.jgap.*; /** * Tests for EventManager class * * @author Klaus Meffert * @since 1.1 */ public class EventManagerTest extends JGAPTestCase { /** String containing the CVS revision. Read out via reflection!*/ private final static String CVS_REVISION = "$Revision: 1.10 $"; public static Test suite() { TestSuite suite = new TestSuite(EventManagerTest.class); return suite; } /** * @throws Exception * * @author Klaus Meffert * @since 1.1 */ public void testAddEventListener_0() throws Exception { IEventManager man = new EventManager(); GeneticEventListener listener = new EventListener(); Map listeners = (Map) privateAccessor.getField(man, "m_listeners"); assertTrue(listeners.isEmpty()); man.addEventListener("testeventname", listener); List listenersList = (List) listeners.get("testeventname"); assertEquals(listener, listenersList.get(0)); } /** * @throws Exception * * @author Klaus Meffert * @since 2.2 */ public void testAddEventListener_1() throws Exception { IEventManager man = new EventManager(); GeneticEventListener listener = new EventListener(); Map listeners = (Map) privateAccessor.getField(man, "m_listeners"); man.addEventListener("testeventname", listener); man.addEventListener("testeventname", listener); List listenersList = (List) listeners.get("testeventname"); assertEquals(listener, listenersList.get(0)); } /** * @throws Exception * * @author Klaus Meffert * @since 1.1 */ public void testRemoveEventListener_0() throws Exception { IEventManager man = new EventManager(); GeneticEventListener listener = new EventListener(); Map listeners = (Map) privateAccessor.getField(man, "m_listeners"); man.addEventListener("testeventname", listener); List listenersList = (List) listeners.get("testeventname"); man.removeEventListener("notfound", listener); assertEquals(listener, listenersList.get(0)); man.removeEventListener("testeventname", null); assertEquals(listener, listenersList.get(0)); man.removeEventListener("testeventname", listener); assertTrue( ( (List) listeners.get("testeventname")).size() == 0); } /** * @throws Exception * * @author Klaus Meffert * @since 2.2 */ public void testFireGeneticeEvent_0() throws Exception { IEventManager man = new EventManager(); GeneticEventListener listener = new EventListener(); man.addEventListener("testeventname", listener); GeneticEvent genEvent = new GeneticEvent("wrong_name", this); man.fireGeneticEvent(genEvent); } /** * @throws Exception * * @author Klaus Meffert * @since 2.2 */ public void testFireGeneticeEvent_1() throws Exception { IEventManager man = new EventManager(); EventListener listener = new EventListener(); man.addEventListener("testeventname", listener); GeneticEvent genEvent = new GeneticEvent("testeventname", this); man.fireGeneticEvent(genEvent); assertTrue(listener.m_fired); assertEquals(genEvent, listener.m_event); } /** * * @author Klaus Meffert */ private class EventListener implements GeneticEventListener { private boolean m_fired; private GeneticEvent m_event; public void geneticEventFired(GeneticEvent a_firedEvent) { m_fired = true; m_event = a_firedEvent; } } }