com.gargoylesoftware.base.testing

Class EventCatcher

public class EventCatcher extends Object

A testing class for catching and logging events.
 // Catch all events fired by JFrame
 final JFrame frame = new JFrame();
 final EventCatcher eventCatcher = new EventCatcher();
 eventCatcher.listenTo(frame);

 frame.show();

 for( int i=0; i<eventCatcher.size(); i++ ) {
     System.out.println(eventCatcher.getEventAt(i));
 }
 

Version: $Revision: 1.3 $

Author: Mike Bowler

Field Summary
ListeventRecords_
InvocationHandlerinvocationHandler_
An inner class to handle the various events.
Constructor Summary
EventCatcher()
Create a new EventCatcher.
Method Summary
voidassertEventsAppearEquals(List expectedEvents)
Compare the specified events against the actual collected event to see if they appear to be the same.
voidclear()
Throw away all the currently collected events.
EventCatcherRecordget(int index)
Return information about the event at the specified index.
EventObjectgetEventAt(int index)
Return the event at the specified index.
EventCatcherRecordgetEventCatcherRecordAt(int index)
Return the record at the specified index.
intgetEventCount()
Return the number of events that have been collected so far.
ListgetEvents()
Return an immutable list containing all the events collected so far.
ObjectgetListener(Class clazz)
Return a listener object that will log all fired events.
voidlistenTo(Object object)
Register the event catcher as a listener for all events that this object fires.
intsize()
Return the number of events that have been caught.

Field Detail

eventRecords_

private final List eventRecords_

invocationHandler_

private InvocationHandler invocationHandler_
An inner class to handle the various events.

Constructor Detail

EventCatcher

public EventCatcher()
Create a new EventCatcher.

Method Detail

assertEventsAppearEquals

public void assertEventsAppearEquals(List expectedEvents)
Compare the specified events against the actual collected event to see if they appear to be the same. Refer to appearsEqual for an explanation of "appearing" to be the same.

Parameters: expectedEvents The events that we expect to have been collected.

clear

public void clear()
Throw away all the currently collected events.

get

public EventCatcherRecord get(int index)

Deprecated: Use EventCatcher instead

Return information about the event at the specified index.

Parameters: index The index.

Returns: The record.

getEventAt

public EventObject getEventAt(int index)
Return the event at the specified index.

Parameters: index The index

Returns: The event at that index.

getEventCatcherRecordAt

public EventCatcherRecord getEventCatcherRecordAt(int index)
Return the record at the specified index. The record will contain the event and assorted information about the event.

Parameters: index The index

Returns: The record at that index.

getEventCount

public int getEventCount()
Return the number of events that have been collected so far.

Returns: The number of events.

getEvents

public List getEvents()
Return an immutable list containing all the events collected so far.

Returns: A list of collected events.

getListener

public Object getListener(Class clazz)
Return a listener object that will log all fired events. This listener should be used when you want to only listen for one kind of events on a bean. If you want to listen to all events then you should just call listenTo
 // Catch all window events
 final ObjectCatcher objectCatcher = new ObjectCatcher();
 final JFrame frame = new JFrame();

 frame.addWindowListener( (WindowListener)objectCatcher.getListener(WindowListener.class) );
 

Parameters: clazz The listener interface that we need to support.

Returns: A listener.

listenTo

public void listenTo(Object object)
Register the event catcher as a listener for all events that this object fires.
 // Catch all events fired by JFrame
 final ObjectCatcher objectCatcher = new ObjectCatcher();
 final JFrame frame = new JFrame();

 eventCatcher.listenTo(frame);
 

Parameters: object The object that we will be listening to.

Throws: IllegalAccessException If we do not have authorization to call the respective addXXXListener() method InvocationTargetException If an exception is thrown during the call to the addXXXListener() method

size

public int size()

Deprecated: Use getEventCount instead

Return the number of events that have been caught.

Returns: the number of events that have been caught.