BusEventTest.java :  » ESB » celtix-1.0 » org » objectweb » celtix » Java Open Source

Java Open Source » ESB » celtix 1.0 
celtix 1.0 » org » objectweb » celtix » BusEventTest.java
package org.objectweb.celtix;

import java.util.List;

import junit.framework.TestCase;

import org.easymock.EasyMock;
import static org.easymock.EasyMock.isA;

// test bus event handler
public class BusEventTest extends TestCase {
    Bus bus;
    
    BusEventListener bel;
    BusEventFilter bef;
    BusEvent event;
    
    public void setUp() throws Exception {
        bel = EasyMock.createMock(BusEventListener.class);
        bef = EasyMock.createMock(BusEventFilter.class);
        bus = Bus.init();        
        event = new BusEvent("Test for EventListener", BusEvent.BUS_EVENT);         
    }
    
    public void tearDown() throws Exception {
        Thread.sleep(100);
        bus.shutdown(true);
    }
    
    public void testBusSendEvent() throws BusException {
        EasyMock.reset(bel);
        EasyMock.reset(bef);
        bef.isEventEnabled(isA(BusEvent.class));
        EasyMock.expectLastCall().andReturn(true);
        bel.processEvent(isA(BusEvent.class));
        EasyMock.expectLastCall();
        EasyMock.replay(bel);
        EasyMock.replay(bef);
        
        bus.addListener(bel, bef);
        bus.sendEvent(event);        
        bus.removeListener(bel);
        // this event should not be called
        bus.sendEvent(event);
        
        EasyMock.verify(bel);
        EasyMock.verify(bef);
    }
    
    public void testBusRemoveListener() throws BusException {
        bus.addListener(bel, bef);
        
        bus.removeListener(bel);
        
        bus.sendEvent(new BusEvent("Test for EventListener", BusEvent.BUS_EVENT));
        
    }
    
    // test for the get event cache
    public void testBusEventCache() throws BusException {
        
        BusEventCache cache = bus.getEventCache();
        
        BusEvent event1 = new BusEvent("Test for EventCache", BusEvent.BUS_EVENT);
        BusEvent event2 = new BusEvent("Test for EventCache", "TEST");
        
        cache.flushEvents();
        
        bus.sendEvent(event);
        bus.sendEvent(event1);
        bus.sendEvent(event2);
        
        assertEquals("The event cache getEvents size is not correct",
                     3, cache.getEvents().size());
        
        assertEquals("The event cache getEvents() size is not correct",
                     1, cache.getEvents("TEST").size());
                
        List<BusEvent> events = cache.flushEvents("TEST");
        
        assertEquals("The event cache flushEvent TEST events size is not correct", 
                   1, events.size());
        
        assertEquals("The event cache getID is not correct", 
                     0, events.get(0).getID().compareTo("TEST"));
        
        assertEquals("The event cache getEvents size is not correct", 
                     2, cache.getEvents().size());
        
        cache.flushEvents(BusEvent.class);
        assertEquals("After flush the event cache getEvents size is not correct", 
                     0, cache.getEvents().size());        
        
    }
    
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.