  @Test
  public void shouldFailOnAbstractParameter() throws Exception {

    JClassType paramType = getEventType(AbstractEvent.class);
    when(paramType.isAbstract()).thenReturn(true);
    
    JMethod method = newMethod("myMethod", paramType);
    when(target.getInheritableMethods()).thenReturn(new JMethod[] {method});
    
    try {
      writer.writeDoBindEventHandlers(target, output, typeOracle);
      fail("Exception not thrown");
    } catch (UnableToCompleteException expected) {}
    
    verify(logger).log(
        eq(Type.ERROR), contains("myMethod"), isNull(Throwable.class), isNull(HelpInfo.class));
  }