}
@Test
public void ensure_javassist_does_not_show_interface_methods_on_abstract_class() throws Exception
{
CtClass ctClass = findCtClass(AbstractFoo.class);
CtClass[] interfaces = ctClass.getInterfaces();
assertEquals(interfaces.length, 1);
assertEquals(interfaces[0].getName(), FooInterface.class.getName());
// In some cases, Java reflection on an abstract class implementing an interface
// will show the interface methods as abstract methods on the class. This seems
// to vary from JVM to JVM. I believe Javassist is more consistent here.
CtMethod[] methods = ctClass.getDeclaredMethods();
assertEquals(methods.length, 0);
}