/sigmah/src/test/java/org/sigmah/client/mock/MockEventBus.java

http://sigma-h.googlecode.com/ · Java · 77 lines · 49 code · 21 blank · 7 comment · 6 complexity · 436c7e750eae53575c255b8fae2ba358 MD5 · raw file

  1. /*
  2. * All Sigmah code is released under the GNU General Public License v3
  3. * See COPYRIGHT.txt and LICENSE.txt.
  4. */
  5. package org.sigmah.client.mock;
  6. import com.extjs.gxt.ui.client.event.BaseEvent;
  7. import com.extjs.gxt.ui.client.event.BaseObservable;
  8. import com.extjs.gxt.ui.client.event.EventType;
  9. import org.junit.Assert;
  10. import org.sigmah.client.EventBus;
  11. import org.sigmah.client.event.NavigationEvent;
  12. import java.util.ArrayList;
  13. import java.util.List;
  14. import static org.junit.Assert.assertTrue;
  15. /**
  16. * @author Alex Bertram (akbertram@gmail.com)
  17. */
  18. public class MockEventBus extends BaseObservable implements EventBus {
  19. public List<BaseEvent> eventLog = new ArrayList<BaseEvent>();
  20. @Override
  21. public boolean fireEvent(EventType eventType, BaseEvent be) {
  22. eventLog.add(be);
  23. return super.fireEvent(eventType, be);
  24. }
  25. @Override
  26. public boolean fireEvent(BaseEvent event) {
  27. return fireEvent(event.getType(), event);
  28. }
  29. public void assertEventFired(BaseEvent event) {
  30. Assert.assertTrue(eventLog.contains(event));
  31. }
  32. public int getEventCount(EventType type) {
  33. int count = 0;
  34. for(BaseEvent event : eventLog) {
  35. if(event.getType() == type) {
  36. count++;
  37. }
  38. }
  39. return count;
  40. }
  41. public <T> T getLastNavigationEvent(Class<T> placeClass) {
  42. for(int i=eventLog.size()-1; i>=0;i--) {
  43. BaseEvent event = eventLog.get(i);
  44. if(event instanceof NavigationEvent) {
  45. NavigationEvent nevent = (NavigationEvent)event;
  46. if(placeClass.isAssignableFrom(nevent.getPlace().getClass())) {
  47. return (T)nevent.getPlace();
  48. }
  49. }
  50. }
  51. return null;
  52. }
  53. public void assertNotFired(EventType eventType) {
  54. assertTrue("eventType" + eventType.toString() + " has not been fired", getEventCount(eventType)==0);
  55. }
  56. }