package test.jdepend.parse; import java.util.Collection; import java.util.Collections; import java.util.List; import test.common.TestConfigUtil; import jdepend.framework.util.MetricsFormat; import jdepend.metadata.Attribute; import jdepend.metadata.InvokeItem; import jdepend.metadata.JavaClass; import jdepend.metadata.JavaClassRelationItem; import jdepend.metadata.JavaPackage; import jdepend.metadata.Method; import jdepend.metadata.RemoteInvokeItem; import jdepend.metadata.relationtype.TableRelation; import jdepend.metadata.tree.JavaClassFieldTreesCreator; import jdepend.metadata.tree.JavaClassInheritTreesCreator; import jdepend.metadata.tree.JavaClassTree; import jdepend.metadata.tree.JavaPackageNode; import jdepend.metadata.tree.JavaPackageTreeCreator; import jdepend.metadata.util.JavaClassUtil; import jdepend.parse.Parse; import junit.framework.TestCase; public final class ParseTest extends TestCase { private Collection<JavaPackage> javaPackages; private Collection<JavaClass> javaClasses; @Override protected void setUp() throws Exception { Parse parse = new Parse(); for (String p : TestConfigUtil.getSelfPath()) { parse.addDirectorys(p); } javaPackages = parse.execute(); this.javaClasses = JavaClassUtil.getClassesForJavaPackages(javaPackages); } public void testAbstractClass() { for (JavaClass javaClass : this.javaClasses) { if (javaClass.isAbstract()) { System.out.println("abstract javaClass :" + javaClass.getName()); } } } public void testClassType() { for (JavaClass javaClass : this.javaClasses) { if (javaClass.getClassType().equals(JavaClass.Service_TYPE)) { System.out.println("Service :" + javaClass.getName()); } } } public void testIsAbstractAttribute() { for (JavaClass javaClass : this.javaClasses) { for (Attribute attibute : javaClass.getAttributes()) { if (attibute.isAbstract()) { System.out.println("abstract attibute :" + attibute.getName()); } } } } public void testIsConstruction() { for (JavaClass javaClass : this.javaClasses) { for (Method method : javaClass.getMethods()) { if (method.isConstruction()) { System.out.println("Construction Method :" + method); } } } } public void testGetReturnTypes() { System.out.println("the Method of ReturnType is java.util.Collection :"); for (JavaClass javaClass : this.javaClasses) { for (Method method : javaClass.getSelfMethods()) { if (method.getReturnTypes().contains("java.util.Collection")) { System.out.println("Info :" + method.getInfo()); System.out.println("Signature :" + method.getSignature()); } } } } public void testGetArgumentTypes() { System.out.println("the Method of ArgumentType is java.util.Collection :"); for (JavaClass javaClass : this.javaClasses) { for (Method method : javaClass.getMethods()) { if (method.getArgumentTypes().contains("java.util.Collection")) { System.out.println("Info :" + method.getInfo()); System.out.println("Signature :" + method.getSignature()); System.out.println("ArgumentType Size :" + method.getArgumentTypes().size()); } } } } public void testSubClass() { for (JavaClass javaClass : this.javaClasses) { if (javaClass.getSubClasses().size() > 0) { System.out.println("the javaClass of have SubClass :" + javaClass.getName()); } } } public void testJavaClassRelationItem() { for (JavaClass javaClass : this.javaClasses) { for (JavaClassRelationItem item : javaClass.getCaItems()) { if (item.getType() instanceof TableRelation) { System.out.println("TableRelation :" + item); } } } } public void testJavaClassRelationItemDetail() { if (this.javaClasses.size() > 0) { JavaClass javaClass = this.javaClasses.iterator().next(); for (JavaClassRelationItem item : javaClass.getCaItems()) { if (item.getRelationIntensity() > 0) { System.out.println("Source :" + item.getSource().getName()); System.out.println("Target :" + item.getTarget().getName()); System.out.println("Type :" + item.getType().getName()); System.out.println("RelationIntensity :" + MetricsFormat.toFormattedMetrics(item.getRelationIntensity())); } } for (JavaClassRelationItem item : javaClass.getCeItems()) { if (item.getRelationIntensity() > 0) { System.out.println("Source :" + item.getSource().getName()); System.out.println("Target :" + item.getTarget().getName()); System.out.println("Type :" + item.getType().getName()); System.out.println("RelationIntensity :" + MetricsFormat.toFormattedMetrics(item.getRelationIntensity())); } } } } public void testRemoteInvokeItem() { for (JavaClass javaClass : this.javaClasses) { for (Method method : javaClass.getMethods()) { for (InvokeItem item : method.getInvokedItems()) { if (item instanceof RemoteInvokeItem) { System.out.println("RemoteInvokeItem :" + item); } } } } } public void testRequestMapping() { for (JavaClass javaClass : this.javaClasses) { for (Method method : javaClass.getMethods()) { if (method.getRequestMapping() != null) { System.out.println("the Method of have RequestMapping :" + method.getName() + " RequestMapping :" + method.getRequestMapping()); } } } } public void testJavaClassInheritTreeCreator() { JavaClassInheritTreesCreator creator = new JavaClassInheritTreesCreator(); List<JavaClassTree> trees = creator.create(this.javaClasses); Collections.sort(trees); if (trees.size() > 0) { System.out.println("max InheritTree :\n" + trees.get(0).toString()); } } public void testJavaClassFieldTreeCreator() { JavaClassFieldTreesCreator creator = new JavaClassFieldTreesCreator(); List<JavaClassTree> trees = creator.create(this.javaClasses); Collections.sort(trees); if (trees.size() > 0) { System.out.println("max FieldTree :\n" + trees.get(0).toString()); } } public void testJavaPackageTreeCreator() { JavaPackageTreeCreator creator = new JavaPackageTreeCreator(); JavaPackageNode root = creator.createTree(javaPackages); System.out.println("JavaPackageTree :\n" + root.getTree()); } }