package org.jadira.scanner.classpath.types; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.util.List; import org.jadira.scanner.classpath.ClasspathResolver; import org.jadira.scanner.classpath.visitor.CollectingVisitor; import org.jadira.scanner.core.exception.ClasspathAccessException; import org.junit.Test; public class JInterfaceTest { @Test public void getSuperInterfaces() throws ClasspathAccessException { ClasspathResolver helper = new ClasspathResolver(); JInterface intf = JInterface.getJInterface("java.awt.event.AWTEventListener", helper); List<JInterface> superIntf = intf.getSuperInterfaces(); assertEquals(1, superIntf.size()); assertEquals(java.util.EventListener.class, superIntf.get(0).getActualClass()); } @Test public void getMethods() { ClasspathResolver helper = new ClasspathResolver(); JInterface intf = JInterface.getJInterface("java.awt.event.AWTEventListener", helper); List<JInterface> superIntf = intf.getSuperInterfaces(); assertEquals(1, superIntf.size()); assertEquals(0, superIntf.get(0).getMethods().size()); assertEquals(1, intf.getMethods().size()); assertEquals("eventDispatched", intf.getMethods().get(0).getName()); assertEquals(1, intf.getMethods().get(0).getParameters().size()); assertEquals("0", intf.getMethods().get(0).getParameters().get(0).getName()); assertEquals(0, intf.getMethods().get(0).getParameters().get(0).getIndex()); assertEquals("java.awt.AWTEvent", intf.getMethods().get(0).getParameters().get(0).getType().getName()); } @Test public void getActualInterface() { ClasspathResolver helper = new ClasspathResolver(); JInterface intf = JInterface.getJInterface("java.awt.event.AWTEventListener", helper); assertEquals(java.awt.event.AWTEventListener.class, intf.getActualClass()); assertEquals(java.awt.event.AWTEventListener.class, intf.getActualInterface()); } @SuppressWarnings("deprecation") @Test public void getAnnotations() { ClasspathResolver helper = new ClasspathResolver(); JInterface intf = JInterface.getJInterface("java.rmi.registry.RegistryHandler", helper); assertEquals(java.rmi.registry.RegistryHandler.class, intf.getActualClass()); assertEquals(java.rmi.registry.RegistryHandler.class, intf.getActualInterface()); assertEquals(1, intf.getAnnotations().size()); JAnnotation<?> ann = intf.getAnnotations().iterator().next(); assertTrue(ann.getActualAnnotation() instanceof Deprecated); } @Test public void getPackage() { ClasspathResolver helper = new ClasspathResolver(); JInterface intf = JInterface.getJInterface("java.awt.event.AWTEventListener", helper); assertEquals("java.awt.event", intf.getPackage().getName()); assertEquals(Package.getPackage("java.awt.event"), intf.getPackage().getActualPackage()); } @Test public void getActualClass() { ClasspathResolver helper = new ClasspathResolver(); JInterface intf = JInterface.getJInterface("java.awt.event.AWTEventListener", helper); assertEquals(java.awt.event.AWTEventListener.class, intf.getActualClass()); } // public Set<JInterface> getSubInterfaces() // public Set<JClass> getImplementingClasses() // public Set<JEnum> getImplementingEnums() @Test public void acceptVisitor() { ClasspathResolver helper = new ClasspathResolver(); JInterface intf = JInterface.getJInterface("java.awt.event.AWTEventListener", helper); CollectingVisitor visitor = new CollectingVisitor(); intf.acceptVisitor(visitor); assertEquals(4, visitor.getVisitedElements().size()); } @Test public void getEnclosingElement() { ClasspathResolver helper = new ClasspathResolver(); JInterface intf = JInterface.getJInterface("java.awt.event.AWTEventListener", helper); assertEquals("java.awt.event", intf.getPackage().getName()); assertEquals("java.awt.event", intf.getEnclosingElement().getName()); } }