Skip to content

Instantly share code, notes, and snippets.

@jmaicher
Created December 11, 2012 10:06
Show Gist options
  • Save jmaicher/4257510 to your computer and use it in GitHub Desktop.
Save jmaicher/4257510 to your computer and use it in GitHub Desktop.
Unit testing anonymous inner classes as event listener
public class Unit {
public Unit(EventDispatcher dispatcher) {
dispatcher.addHandler(MyEvent.class, new IEventHandler() {
public void onEvent(MyEvent event) {
// some behavior
}
});
}
}
public class UnitTest {
@Test
public void whenDispatcherTriggersMyEventThenIExpectBehaviour() {
EventDispatcher mockedDispatcher = mock(EventDispatcher.class);
new Unit(mockedDispatcher);
ArgumentCaptor<IEventHandler> myEventHandlerCaptor = ArgumentCaptor.forClass(IEventHandler.class);
verify(mockedDispatcher).addHandler(eq(MyEvent.class), myEventHandlerCaptor.capture());
IEventHandler myEventHandler = myEventHandlerCaptor.getValue();
MyEvent mockedEvent = mock(MyEvent.class);
myEventHandler.onEvent(mockedEvent);
// verify behavior
}
}
@claussni
Copy link

Its all about naming things ;-) #ServerObserver

@ashif-ismail
Copy link

@jmaicher
thanks man,this one helped me ..

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment