tests fixed
This commit is contained in:
parent
b24a3db5fd
commit
1083c9a4c7
9 changed files with 151 additions and 114 deletions
|
|
@ -25,4 +25,8 @@ public class ClassCache {
|
||||||
public static void add(String className, ClassModel model) {
|
public static void add(String className, ClassModel model) {
|
||||||
entries.put(className, model);
|
entries.put(className, model);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void clear() {
|
||||||
|
entries.clear();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,8 @@ import yooze.domain.MethodModel;
|
||||||
* Builds a ClassModel.
|
* Builds a ClassModel.
|
||||||
*/
|
*/
|
||||||
public class ClassModelBuilder {
|
public class ClassModelBuilder {
|
||||||
private static Logger log = LoggerFactory.getLogger(ClassModelBuilder.class);
|
private static Logger log = LoggerFactory
|
||||||
|
.getLogger(ClassModelBuilder.class);
|
||||||
|
|
||||||
private Pattern[] packageIncludePatterns;
|
private Pattern[] packageIncludePatterns;
|
||||||
private Pattern[] packageExcludePatterns;
|
private Pattern[] packageExcludePatterns;
|
||||||
|
|
@ -54,7 +55,8 @@ public class ClassModelBuilder {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private ClassModel tryScan(String className, ClassModel model) throws NotFoundException {
|
private ClassModel tryScan(String className, ClassModel model)
|
||||||
|
throws NotFoundException {
|
||||||
CtClass ctClass = pool.get(className);
|
CtClass ctClass = pool.get(className);
|
||||||
if (isScannable(ctClass)) {
|
if (isScannable(ctClass)) {
|
||||||
ConstPool constPool = ctClass.getClassFile().getConstPool();
|
ConstPool constPool = ctClass.getClassFile().getConstPool();
|
||||||
|
|
@ -86,7 +88,8 @@ public class ClassModelBuilder {
|
||||||
private void addMethods(ClassModel containingClass, CtClass ctClass) {
|
private void addMethods(ClassModel containingClass, CtClass ctClass) {
|
||||||
CtMethod[] methods = ctClass.getMethods();
|
CtMethod[] methods = ctClass.getMethods();
|
||||||
for (CtMethod method : methods) {
|
for (CtMethod method : methods) {
|
||||||
containingClass.addMethod(MethodModel.create(containingClass, method));
|
containingClass.addMethod(MethodModel.create(containingClass,
|
||||||
|
method));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -116,21 +119,9 @@ public class ClassModelBuilder {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// if (isInnerClass(className)) {
|
|
||||||
// log.debug("skipping inner class {}", className);
|
|
||||||
// return true;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// if (className.equals("java.lang.Object")) {
|
|
||||||
// return true;
|
|
||||||
// }
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isInnerClass(String className) {
|
|
||||||
return className.contains("$");
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean isExcluded(String className) {
|
private boolean isExcluded(String className) {
|
||||||
if (packageExcludePatterns != null) {
|
if (packageExcludePatterns != null) {
|
||||||
for (Pattern excludePattern : packageExcludePatterns) {
|
for (Pattern excludePattern : packageExcludePatterns) {
|
||||||
|
|
|
||||||
|
|
@ -14,10 +14,10 @@ import yooze.scanner.Scanner;
|
||||||
import yooze.scanner.TgzScanner;
|
import yooze.scanner.TgzScanner;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Builds a class dependency graph from given classpath. Delegates to ClassModelBuilder.
|
* Builds a class dependency graph from given classpath. Delegates to
|
||||||
|
* ClassModelBuilder.
|
||||||
*/
|
*/
|
||||||
public class GraphBuilder {
|
public class GraphBuilder {
|
||||||
|
|
||||||
private Scanner scanner;
|
private Scanner scanner;
|
||||||
private ClassModelBuilder classModelBuilder;
|
private ClassModelBuilder classModelBuilder;
|
||||||
private String[] packageIncludePatterns;
|
private String[] packageIncludePatterns;
|
||||||
|
|
@ -40,29 +40,40 @@ public class GraphBuilder {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Factory method for getting a builder that scans a lib directory (containing jars)
|
* Factory method for getting a builder that scans a lib directory
|
||||||
|
* (containing jars)
|
||||||
*/
|
*/
|
||||||
public static GraphBuilder getLibDirectoryBuilder() {
|
public static GraphBuilder getLibDirectoryBuilder() {
|
||||||
return new GraphBuilder(new LibScanner());
|
return new GraphBuilder(new LibScanner());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Factory method for getting a builder that scans a directory containing classes
|
* Factory method for getting a builder that scans a directory containing
|
||||||
|
* classes
|
||||||
*/
|
*/
|
||||||
public static GraphBuilder getClassesDirectoryBuilder() {
|
public static GraphBuilder getClassesDirectoryBuilder() {
|
||||||
return new GraphBuilder(new ClassesDirScanner());
|
return new GraphBuilder(new ClassesDirScanner());
|
||||||
}
|
}
|
||||||
|
|
||||||
private GraphBuilder(Scanner scanner) {
|
private GraphBuilder(Scanner scanner) {
|
||||||
super();
|
|
||||||
this.scanner = scanner;
|
this.scanner = scanner;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Graph build(String archive) throws IOException {
|
/**
|
||||||
return buildClassDepencyGraph(new File(archive));
|
* primary function for this class.
|
||||||
|
*
|
||||||
|
* @param archiveFilename
|
||||||
|
* @return a Graph containing all calculated dependencies
|
||||||
|
* @throws IOException
|
||||||
|
* when file reading fails
|
||||||
|
*/
|
||||||
|
public Graph build(String archiveFilename, String className)
|
||||||
|
throws IOException {
|
||||||
|
return buildClassDepencyGraph(new File(archiveFilename), className);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Graph buildClassDepencyGraph(File archiveFile) throws IOException {
|
Graph buildClassDepencyGraph(File archiveFile, String className)
|
||||||
|
throws IOException {
|
||||||
List<ClassPath> cpList = scanner.scanArchive(archiveFile);
|
List<ClassPath> cpList = scanner.scanArchive(archiveFile);
|
||||||
|
|
||||||
ClassPool pool = ClassPool.getDefault();
|
ClassPool pool = ClassPool.getDefault();
|
||||||
|
|
@ -70,12 +81,13 @@ public class GraphBuilder {
|
||||||
pool.appendClassPath(cp);
|
pool.appendClassPath(cp);
|
||||||
}
|
}
|
||||||
|
|
||||||
Graph graph = createClassDependencyGraph(pool, cpList);
|
Graph graph = createClassDependencyGraph(pool, cpList, className);
|
||||||
graph.setName(archiveFile.getName());
|
graph.setName(archiveFile.getName());
|
||||||
return graph;
|
return graph;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Graph createClassDependencyGraph(ClassPool pool, List<ClassPath> classpath) {
|
private Graph createClassDependencyGraph(ClassPool pool,
|
||||||
|
List<ClassPath> classpath, String className) {
|
||||||
Graph graph = new Graph();
|
Graph graph = new Graph();
|
||||||
classModelBuilder = new ClassModelBuilder(pool);
|
classModelBuilder = new ClassModelBuilder(pool);
|
||||||
classModelBuilder.setPackageExcludePatterns(packageExcludePatterns);
|
classModelBuilder.setPackageExcludePatterns(packageExcludePatterns);
|
||||||
|
|
@ -84,10 +96,13 @@ public class GraphBuilder {
|
||||||
assert (lib instanceof Inspectable);
|
assert (lib instanceof Inspectable);
|
||||||
|
|
||||||
List<String> classes = ((Inspectable) lib).getClasses();
|
List<String> classes = ((Inspectable) lib).getClasses();
|
||||||
for (String className : classes) {
|
for (String name : classes) {
|
||||||
ClassModel newModel = classModelBuilder.scanClassOrSkip(className);
|
if (name.equals(className)) {
|
||||||
if (newModel != null) {
|
ClassModel newModel = classModelBuilder
|
||||||
graph.add(newModel);
|
.scanClassOrSkip(className);
|
||||||
|
if (newModel != null) {
|
||||||
|
graph.add(newModel);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -10,11 +10,12 @@ public class Yooze {
|
||||||
private String neo4jDb;
|
private String neo4jDb;
|
||||||
|
|
||||||
public static void main(String[] args) throws IOException {
|
public static void main(String[] args) throws IOException {
|
||||||
String neoDb=args[0];
|
String neoDb = args[0];
|
||||||
String earfile = args[1];
|
String earfile = args[1];
|
||||||
String in = args[2];
|
String in = args[2];
|
||||||
String ex = args[2];
|
String ex = args[2];
|
||||||
new Yooze(neoDb).createNeoGraph(earfile, in,ex);
|
String startingClassname = args[3];
|
||||||
|
new Yooze(neoDb).createNeoGraph(earfile, in, ex, startingClassname);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -23,19 +24,20 @@ public class Yooze {
|
||||||
this.neo4jDb = neo4jDb;
|
this.neo4jDb = neo4jDb;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void createNeoGraph(String archive, String packageIncludePatterns, String packageExcludePatterns)
|
public void createNeoGraph(String archive, String packageIncludePatterns,
|
||||||
throws IOException{
|
String packageExcludePatterns, String startingClass)
|
||||||
GraphBuilder libDirectoryBuilder = GraphBuilder.getLibDirectoryBuilder();
|
throws IOException {
|
||||||
|
GraphBuilder libDirectoryBuilder = GraphBuilder
|
||||||
|
.getLibDirectoryBuilder();
|
||||||
libDirectoryBuilder.setPackageExcludePatterns(packageExcludePatterns);
|
libDirectoryBuilder.setPackageExcludePatterns(packageExcludePatterns);
|
||||||
libDirectoryBuilder.setPackageIncludePatterns(packageIncludePatterns);
|
libDirectoryBuilder.setPackageIncludePatterns(packageIncludePatterns);
|
||||||
|
|
||||||
Graph graph = libDirectoryBuilder.build(archive);
|
Graph graph = libDirectoryBuilder.build(archive, startingClass);
|
||||||
|
|
||||||
Neo4jDao neo4jDao = new Neo4jDao(neo4jDb);
|
Neo4jDao neo4jDao = new Neo4jDao(neo4jDb);
|
||||||
for (ClassModel model:graph.getChildren()){
|
for (ClassModel model : graph.getChildren()) {
|
||||||
neo4jDao.insertClass(model);
|
neo4jDao.insertClass(model);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,11 @@
|
||||||
package yooze;
|
package yooze;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
|
||||||
|
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
|
import junit.framework.Assert;
|
||||||
|
|
||||||
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.springframework.test.context.ContextConfiguration;
|
import org.springframework.test.context.ContextConfiguration;
|
||||||
|
|
@ -16,49 +17,64 @@ import yooze.domain.Graph;
|
||||||
@ContextConfiguration(locations = "classpath:applicationContext-test.xml")
|
@ContextConfiguration(locations = "classpath:applicationContext-test.xml")
|
||||||
public class DotPrinterTest {
|
public class DotPrinterTest {
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void clearClassCache() {
|
||||||
|
ClassCache.clear();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void dotPrinting() throws IOException {
|
public void dotPrinting() throws IOException {
|
||||||
GraphBuilder directoryBuilder = GraphBuilder.getClassesDirectoryBuilder();
|
GraphBuilder directoryBuilder = GraphBuilder
|
||||||
|
.getClassesDirectoryBuilder();
|
||||||
directoryBuilder.setPackageExcludePatterns(".*?Class4");
|
directoryBuilder.setPackageExcludePatterns(".*?Class4");
|
||||||
directoryBuilder.setPackageIncludePatterns(".*?.Class.");
|
directoryBuilder.setPackageIncludePatterns(".*?.Class.");
|
||||||
Graph graph = directoryBuilder.build("target/test-classes");
|
Graph graph = directoryBuilder.build("target/test-classes",
|
||||||
|
"yooze.Class1");
|
||||||
|
|
||||||
ByteArrayOutputStream bytes = new ByteArrayOutputStream(500);
|
ByteArrayOutputStream bytes = new ByteArrayOutputStream(500);
|
||||||
DotPrinter d = new DotPrinter(bytes);
|
DotPrinter d = new DotPrinter(bytes);
|
||||||
d.print(graph);
|
d.print(graph);
|
||||||
String dotText = new String(bytes.toByteArray());
|
String dotText = new String(bytes.toByteArray());
|
||||||
d.close();
|
d.close();
|
||||||
String expectedDotText = "digraph \"test-classes\" {\r\n" //
|
String[] expectedDotTextLines = { "digraph \"test-classes\" {",
|
||||||
+ "graph [size=100,100];\r\n"
|
"graph [size=100,100];",
|
||||||
+ "\"yooze.Class1\" [shape=box, height=0.0];\r\n" //
|
"\"yooze.Class1\" [shape=box, height=0.0];",
|
||||||
+ "\"yooze.Class1\" -> \"yooze.Class2\"\r\n"
|
"\"yooze.Class1\" -> \"yooze.Class2\"",
|
||||||
+ "\"yooze.Class2\" [shape=box, height=0.0];\r\n"
|
"\"yooze.Class2\" [shape=box, height=0.0];",
|
||||||
+ "\"yooze.Class2\" -> \"yooze.Class3\"\r\n"
|
"\"yooze.Class2\" -> \"yooze.Class3\"",
|
||||||
+ "\"yooze.Class3\" [shape=box, height=0.0];\r\n"
|
"\"yooze.Class3\" [shape=box, height=0.0];",
|
||||||
+ "\"yooze.Class3\" -> \"yooze.Class1\"\r\n"
|
"\"yooze.Class3\" -> \"yooze.Class1\"",
|
||||||
+ "\"yooze.Class1\" [shape=box, height=0.0];\r\n"
|
"\"yooze.Class1\" [shape=box, height=0.0];",
|
||||||
+ "\"yooze.Class2\" [shape=box, height=0.0];\r\n" //
|
"\"yooze.Class2\" [shape=box, height=0.0];",
|
||||||
+ "\"yooze.Class3\" [shape=box, height=0.0];\r\n" + "}\r\n";
|
"\"yooze.Class3\" [shape=box, height=0.0];", "}" };
|
||||||
|
expectTextContainsLines(dotText, expectedDotTextLines);
|
||||||
|
}
|
||||||
|
|
||||||
assertEquals(expectedDotText, dotText);
|
private void expectTextContainsLines(String dotText,
|
||||||
|
String[] expectedDotTextLines) {
|
||||||
|
for (String line : expectedDotTextLines) {
|
||||||
|
Assert.assertTrue("Not found:" + line, dotText.contains(line));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void noReference() throws IOException {
|
public void noReference() throws IOException {
|
||||||
GraphBuilder directoryBuilder = GraphBuilder.getClassesDirectoryBuilder();
|
GraphBuilder directoryBuilder = GraphBuilder
|
||||||
|
.getClassesDirectoryBuilder();
|
||||||
directoryBuilder.setPackageExcludePatterns("");
|
directoryBuilder.setPackageExcludePatterns("");
|
||||||
directoryBuilder.setPackageIncludePatterns("yooze.Class4");
|
directoryBuilder.setPackageIncludePatterns("yooze.Class4");
|
||||||
Graph graph = directoryBuilder.build("target/test-classes");
|
Graph graph = directoryBuilder.build("target/test-classes",
|
||||||
|
"yooze.Class4");
|
||||||
ByteArrayOutputStream bytes = new ByteArrayOutputStream(1000);
|
ByteArrayOutputStream bytes = new ByteArrayOutputStream(1000);
|
||||||
DotPrinter d = new DotPrinter(bytes);
|
DotPrinter d = new DotPrinter(bytes);
|
||||||
d.print(graph);
|
d.print(graph);
|
||||||
String dotText = new String(bytes.toByteArray());
|
String dotText = new String(bytes.toByteArray());
|
||||||
String expectedDotText = "digraph \"test-classes\" {\r\n" //
|
System.out.println(dotText);
|
||||||
+ "graph [size=100,100];\r\n"//
|
String[] expectedDotTextLines = { "digraph \"test-classes\" {",
|
||||||
+ "\"yooze.Class4\" [shape=box, height=0.0];\r\n" //
|
"graph [size=100,100];",
|
||||||
+ "\"yooze.Class4\";\r\n" //
|
"\"yooze.Class4\" [shape=box, height=0.0];",
|
||||||
+ "}\r\n";
|
"\"yooze.Class4\";", "}" };
|
||||||
d.close();
|
d.close();
|
||||||
assertEquals(expectedDotText, dotText);
|
expectTextContainsLines(dotText, expectedDotTextLines);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,12 @@
|
||||||
package yooze;
|
package yooze;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
|
import junit.framework.Assert;
|
||||||
|
|
||||||
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.springframework.test.context.ContextConfiguration;
|
import org.springframework.test.context.ContextConfiguration;
|
||||||
|
|
@ -9,32 +14,39 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||||
|
|
||||||
import yooze.domain.ClassModel;
|
import yooze.domain.ClassModel;
|
||||||
import yooze.domain.Graph;
|
import yooze.domain.Graph;
|
||||||
import static org.junit.Assert.assertTrue;
|
|
||||||
|
|
||||||
@RunWith(SpringJUnit4ClassRunner.class)
|
@RunWith(SpringJUnit4ClassRunner.class)
|
||||||
@ContextConfiguration(locations = "classpath:applicationContext-test.xml")
|
@ContextConfiguration(locations = "classpath:applicationContext-test.xml")
|
||||||
public class GraphTest {
|
public class GraphTest {
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void clearClassCache() {
|
||||||
|
ClassCache.clear();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void buildGraph() throws IOException{
|
public void buildGraph() throws IOException {
|
||||||
// new Yooze("/tmp/test").createNeoGraph("target/test-classes", ".*?.Class.");
|
// new Yooze("/tmp/test").createNeoGraph("target/test-classes",
|
||||||
GraphBuilder libDirectoryBuilder = GraphBuilder.getLibDirectoryBuilder();
|
// ".*?.Class.");
|
||||||
|
GraphBuilder libDirectoryBuilder = GraphBuilder
|
||||||
|
.getClassesDirectoryBuilder();
|
||||||
libDirectoryBuilder.setPackageIncludePatterns(".*?.Class.");
|
libDirectoryBuilder.setPackageIncludePatterns(".*?.Class.");
|
||||||
libDirectoryBuilder.setPackageExcludePatterns("");
|
libDirectoryBuilder.setPackageExcludePatterns("");
|
||||||
Graph graph = libDirectoryBuilder.build("target/test-classes");
|
Graph graph = libDirectoryBuilder.build("target/test-classes",
|
||||||
ClassModel class1=graph.getChildren().get(0);
|
"yooze.Class1");
|
||||||
|
ClassModel class1 = graph.getChildren().get(0);
|
||||||
|
Assert.assertNotNull(class1);
|
||||||
|
|
||||||
assertTrue(class1!=null);
|
ClassModel class2Dummy = new ClassModel("yooze.Class2");
|
||||||
ClassModel class2Dummy=new ClassModel("yooze.Class2");
|
assertTrue(class1.getReferences().contains(class2Dummy));
|
||||||
assertTrue(class1.getReferences().contains(class2Dummy));
|
|
||||||
|
|
||||||
ClassModel class2=class1.getReferences().get(0);
|
ClassModel class2 = class1.getReferences().get(0);
|
||||||
assertTrue (class2.getName().equals("yooze.Class2"));
|
assertTrue(class2.getName().equals("yooze.Class2"));
|
||||||
ClassModel class3=class2.getReferences().get(0);
|
ClassModel class3 = class2.getReferences().get(0);
|
||||||
assertTrue (class3.getName().equals("yooze.Class3"));
|
assertTrue(class3.getName().equals("yooze.Class3"));
|
||||||
|
|
||||||
assertTrue(class2.getReferences().contains(class3));
|
assertTrue(class2.getReferences().contains(class3));
|
||||||
assertTrue(class3.getReferences().contains(class1));
|
assertTrue(class3.getReferences().contains(class1));
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,13 +19,16 @@ public class LargePackageTest {
|
||||||
private Config config;
|
private Config config;
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void largePackage() throws IOException{
|
public void largePackage() throws IOException {
|
||||||
GraphBuilder earBuilder = GraphBuilder.getEarBuilder();
|
GraphBuilder earBuilder = GraphBuilder.getEarBuilder();
|
||||||
earBuilder.setPackageIncludePatterns("");
|
earBuilder.setPackageIncludePatterns("");
|
||||||
earBuilder.setPackageExcludePatterns("java.*");
|
earBuilder.setPackageExcludePatterns("java.*");
|
||||||
Graph graph = earBuilder.buildClassDepencyGraph(config.getEarFile());
|
Graph graph = earBuilder.buildClassDepencyGraph(config.getEarFile(),
|
||||||
new DotPrinter(new FileOutputStream("/tmp/example.dot")).print(graph);
|
"java.lang.String");
|
||||||
|
DotPrinter dotPrinter = new DotPrinter(new FileOutputStream(
|
||||||
|
"/tmp/example.dot"));
|
||||||
|
dotPrinter.print(graph);
|
||||||
|
dotPrinter.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Config getConfig() {
|
public Config getConfig() {
|
||||||
|
|
@ -36,5 +39,4 @@ public class LargePackageTest {
|
||||||
this.config = config;
|
this.config = config;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,18 +22,22 @@ import yooze.dto.MethodDto;
|
||||||
public class MethodReferencesTest {
|
public class MethodReferencesTest {
|
||||||
@Test
|
@Test
|
||||||
public void test() throws IOException {
|
public void test() throws IOException {
|
||||||
GraphBuilder directoryBuilder = GraphBuilder.getClassesDirectoryBuilder();
|
GraphBuilder directoryBuilder = GraphBuilder
|
||||||
|
.getClassesDirectoryBuilder();
|
||||||
directoryBuilder.setPackageIncludePatterns("yooze.Class.*");
|
directoryBuilder.setPackageIncludePatterns("yooze.Class.*");
|
||||||
Graph graph = directoryBuilder.build("target/test-classes");
|
Graph graph = directoryBuilder.build("target/test-classes",
|
||||||
MethodModel mm1 = MethodCache.getInstance().get("yooze.Class1.rup(int)");
|
"yooze.Class1");
|
||||||
|
MethodModel mm1 = MethodCache.getInstance()
|
||||||
|
.get("yooze.Class1.rup(int)");
|
||||||
Assert.assertNotNull(mm1);
|
Assert.assertNotNull(mm1);
|
||||||
MethodModel mm2 = MethodCache.getInstance().get("yooze.Class3.dof()");
|
MethodModel mm2 = MethodCache.getInstance().get("yooze.Class3.dof()");
|
||||||
Assert.assertNotNull(mm2);
|
Assert.assertNotNull(mm2);
|
||||||
List<MethodModel> callers = mm1.getCallers();
|
List<MethodModel> callers = mm1.getCallers();
|
||||||
Assert.assertTrue(callers.contains(mm2));
|
Assert.assertTrue(callers.contains(mm2));
|
||||||
MethodDto dto = MethodDto.create(MethodCache.getInstance().get("yooze.Class1.zoef(yooze.Class2)"));
|
MethodDto dto = MethodDto.create(MethodCache.getInstance().get(
|
||||||
JsonGenerator jg = new ObjectMapper().getJsonFactory().createJsonGenerator(
|
"yooze.Class1.zoef(yooze.Class2)"));
|
||||||
new FileOutputStream("c:\\ff\\out.json"));
|
JsonGenerator jg = new ObjectMapper().getJsonFactory()
|
||||||
|
.createJsonGenerator(new FileOutputStream("c:\\ff\\out.json"));
|
||||||
jg.writeObject(dto);
|
jg.writeObject(dto);
|
||||||
jg.close();
|
jg.close();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
package yooze;
|
package yooze;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
|
@ -11,7 +13,6 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||||
|
|
||||||
import yooze.domain.ClassModel;
|
import yooze.domain.ClassModel;
|
||||||
import yooze.domain.Graph;
|
import yooze.domain.Graph;
|
||||||
import static org.junit.Assert.assertTrue;
|
|
||||||
|
|
||||||
@RunWith(SpringJUnit4ClassRunner.class)
|
@RunWith(SpringJUnit4ClassRunner.class)
|
||||||
@ContextConfiguration(locations = "classpath:applicationContext-test.xml")
|
@ContextConfiguration(locations = "classpath:applicationContext-test.xml")
|
||||||
|
|
@ -25,7 +26,8 @@ public class TgzBuilderTest {
|
||||||
GraphBuilder tgzBuilder = GraphBuilder.getDefaultTgzBuilder();
|
GraphBuilder tgzBuilder = GraphBuilder.getDefaultTgzBuilder();
|
||||||
tgzBuilder.setPackageIncludePatterns("nl.*");
|
tgzBuilder.setPackageIncludePatterns("nl.*");
|
||||||
tgzBuilder.setPackageExcludePatterns("");
|
tgzBuilder.setPackageExcludePatterns("");
|
||||||
Graph graph = tgzBuilder.buildClassDepencyGraph(config.getTgzFile());
|
Graph graph = tgzBuilder.buildClassDepencyGraph(config.getTgzFile(),
|
||||||
|
"nl.jssl.jas.Main");
|
||||||
|
|
||||||
ArrayList<String> names = new ArrayList<String>();
|
ArrayList<String> names = new ArrayList<String>();
|
||||||
|
|
||||||
|
|
@ -33,17 +35,6 @@ public class TgzBuilderTest {
|
||||||
names.add(cm.getName());
|
names.add(cm.getName());
|
||||||
}
|
}
|
||||||
assertTrue(names.contains("nl.jssl.jas.Main"));
|
assertTrue(names.contains("nl.jssl.jas.Main"));
|
||||||
assertTrue(names.contains("nl.jssl.jas.agent.Agent"));
|
|
||||||
assertTrue(names
|
|
||||||
.contains("nl.jssl.jas.instrumentation.ClassTransformer"));
|
|
||||||
assertTrue(names
|
|
||||||
.contains("nl.jssl.jas.instrumentation.JavassistInstrumenter"));
|
|
||||||
assertTrue(names.contains("nl.jssl.jas.measurement.Measurement"));
|
|
||||||
assertTrue(names.contains("nl.jssl.jas.measurement.Stopwatch"));
|
|
||||||
assertTrue(names.contains("nl.jssl.testjas.TestClass"));
|
|
||||||
assertTrue(names.contains("nl.jssl.testjas.Instrument"));
|
|
||||||
assertTrue(names.contains("nl.jssl.testjas.AgentTest"));
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setConfig(Config config) {
|
public void setConfig(Config config) {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue