public void testActionPerformed() throws Exception {
    Fixture.fakePhase(PhaseId.PROCESS_ACTION);
    Display display = new Display();
    Shell shell = new Shell(display);
    Button button = new Button(shell, SWT.PUSH);
    IEventAdapter eventAdapter = (IEventAdapter) button.getAdapter(IEventAdapter.class);
    assertNotNull(eventAdapter);
    assertSame(eventAdapter, button.getAdapter(IEventAdapter.class));
    assertFalse(eventAdapter.hasListener(SelectionListener.class));
    try {
      eventAdapter.hasListener(Object.class);
      fail();
    } catch (final IllegalArgumentException iae) {
    }

    Object[] listener = eventAdapter.getListener(SelectionListener.class);
    assertEquals(0, listener.length);
    SelectionListener actionListener = new SelectionAdapter() {};
    eventAdapter.addListener(SelectionListener.class, actionListener);
    assertTrue(eventAdapter.hasListener(SelectionListener.class));
    listener = eventAdapter.getListener(SelectionListener.class);
    assertEquals(1, listener.length);
    assertSame(actionListener, listener[0]);
    eventAdapter.removeListener(SelectionListener.class, actionListener);
    assertFalse(eventAdapter.hasListener(SelectionListener.class));
  }
 public void testAddListenerWithIllegalArguments() {
   Fixture.fakePhase(PhaseId.PROCESS_ACTION);
   Display display = new Display();
   Widget widget = new Shell(display);
   IEventAdapter eventAdapter = (IEventAdapter) widget.getAdapter(IEventAdapter.class);
   try {
     eventAdapter.addListener(SelectionListener.class, new Object());
     fail();
   } catch (final IllegalArgumentException iae) {
   }
   try {
     eventAdapter.addListener(SelectionListener.class, null);
     fail();
   } catch (final IllegalArgumentException iae) {
   }
   try {
     SelectionListener validListener = new SelectionAdapter() {};
     eventAdapter.addListener(null, validListener);
     fail();
   } catch (final IllegalArgumentException iae) {
   }
   Object[] listeners = eventAdapter.getListener(SelectionListener.class);
   assertEquals(0, listeners.length);
 }