Skip to content

Commit 837bf22

Browse files
committed
refactor: apply AbstractJdTest to test case
1 parent d3fbda7 commit 837bf22

File tree

9 files changed

+31
-461
lines changed

9 files changed

+31
-461
lines changed

src/test/java/org/jd/core/v1/JarFileToJavaSourceTest.java

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,7 @@
2929
import java.util.HashMap;
3030
import java.util.Map;
3131

32-
public class JarFileToJavaSourceTest extends TestCase {
33-
protected ClassFileDeserializer deserializer = new ClassFileDeserializer();
34-
protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor();
35-
protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor();
36-
protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor();
37-
//protected TestTokenizeJavaFragmentProcessor tokenizer = new TestTokenizeJavaFragmentProcessor();
38-
protected JavaFragmentToTokenProcessor tokenizer = new JavaFragmentToTokenProcessor();
39-
protected WriteTokenProcessor writer = new WriteTokenProcessor();
32+
public class JarFileToJavaSourceTest extends AbstractJdTest {
4033

4134
@Test
4235
public void testCommonsCodec() throws Exception {

src/test/java/org/jd/core/v1/Java9InterfaceTest.java

Lines changed: 2 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -7,43 +7,24 @@
77

88
package org.jd.core.v1;
99

10-
import junit.framework.TestCase;
1110
import org.jd.core.v1.api.loader.Loader;
12-
import org.jd.core.v1.api.printer.Printer;
1311
import org.jd.core.v1.compiler.CompilerUtil;
1412
import org.jd.core.v1.compiler.JavaSourceFileObject;
1513
import org.jd.core.v1.loader.ZipLoader;
16-
import org.jd.core.v1.model.classfile.ClassFile;
17-
import org.jd.core.v1.model.message.DecompileContext;
1814
import org.jd.core.v1.printer.PlainTextPrinter;
1915
import org.jd.core.v1.regex.PatternMaker;
20-
import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor;
21-
import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer;
22-
import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor;
23-
import org.jd.core.v1.service.layouter.LayoutFragmentProcessor;
24-
import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor;
25-
import org.jd.core.v1.service.writer.WriteTokenProcessor;
2616
import org.junit.Test;
2717

2818
import java.io.InputStream;
29-
import java.util.Collections;
30-
import java.util.Map;
3119

32-
public class Java9InterfaceTest extends TestCase {
33-
protected ClassFileDeserializer deserializer = new ClassFileDeserializer();
34-
protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor();
35-
protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor();
36-
protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor();
37-
//protected TestTokenizeJavaFragmentProcessor tokenizer = new TestTokenizeJavaFragmentProcessor();
38-
protected JavaFragmentToTokenProcessor tokenizer = new JavaFragmentToTokenProcessor();
39-
protected WriteTokenProcessor writer = new WriteTokenProcessor();
20+
public class Java9InterfaceTest extends AbstractJdTest {
4021

4122
@Test
4223
public void testJdk901InterfaceWithDefaultMethods() throws Exception {
4324
String internalClassName = "org/jd/core/test/InterfaceWithDefaultMethods";
4425
InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-9.0.1.zip");
4526
Loader loader = new ZipLoader(is);
46-
String source = decompile(loader, new PlainTextPrinter(), internalClassName);
27+
String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName);
4728

4829
// Check decompiled source code
4930
assertTrue(source.matches(PatternMaker.make("public interface InterfaceWithDefaultMethods")));
@@ -71,39 +52,4 @@ public void testJdk901InterfaceWithDefaultMethods() throws Exception {
7152
}
7253
}
7354
}
74-
75-
protected String decompile(Loader loader, Printer printer, String internalTypeName) throws Exception {
76-
return decompile(loader, printer, internalTypeName, Collections.emptyMap());
77-
}
78-
79-
protected String decompile(Loader loader, Printer printer, String internalTypeName, Map<String, Object> configuration) throws Exception {
80-
DecompileContext decompileContext = new DecompileContext();
81-
decompileContext.setLoader(loader);
82-
decompileContext.setPrinter(printer);
83-
decompileContext.setMainInternalTypeName(internalTypeName);
84-
decompileContext.setConfiguration(configuration);
85-
86-
ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName);
87-
decompileContext.setBody(classFile);
88-
89-
converter.process(decompileContext);
90-
fragmenter.process(decompileContext);
91-
layouter.process(decompileContext);
92-
tokenizer.process(decompileContext);
93-
writer.process(decompileContext);
94-
95-
String source = printer.toString();
96-
97-
printSource(source);
98-
99-
assertTrue(source.indexOf("// Byte code:") == -1);
100-
101-
return source;
102-
}
103-
104-
protected void printSource(String source) {
105-
System.out.println("- - - - - - - - ");
106-
System.out.println(source);
107-
System.out.println("- - - - - - - - ");
108-
}
10955
}

src/test/java/org/jd/core/v1/JavaAnnotationTest.java

Lines changed: 4 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -7,43 +7,23 @@
77

88
package org.jd.core.v1;
99

10-
import junit.framework.TestCase;
1110
import org.jd.core.v1.api.loader.Loader;
12-
import org.jd.core.v1.api.printer.Printer;
1311
import org.jd.core.v1.compiler.CompilerUtil;
1412
import org.jd.core.v1.compiler.JavaSourceFileObject;
1513
import org.jd.core.v1.loader.ZipLoader;
16-
import org.jd.core.v1.model.classfile.ClassFile;
17-
import org.jd.core.v1.model.message.DecompileContext;
1814
import org.jd.core.v1.printer.PlainTextPrinter;
1915
import org.jd.core.v1.regex.PatternMaker;
20-
import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor;
21-
import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer;
22-
import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor;
23-
import org.jd.core.v1.service.layouter.LayoutFragmentProcessor;
24-
import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor;
25-
import org.jd.core.v1.service.writer.WriteTokenProcessor;
2616
import org.junit.Test;
2717

2818
import java.io.InputStream;
29-
import java.util.Collections;
30-
import java.util.Map;
31-
32-
public class JavaAnnotationTest extends TestCase {
33-
protected ClassFileDeserializer deserializer = new ClassFileDeserializer();
34-
protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor();
35-
protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor();
36-
protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor();
37-
//protected TestTokenizeJavaFragmentProcessor tokenizer = new TestTokenizeJavaFragmentProcessor();
38-
protected JavaFragmentToTokenProcessor tokenizer = new JavaFragmentToTokenProcessor();
39-
protected WriteTokenProcessor writer = new WriteTokenProcessor();
4019

20+
public class JavaAnnotationTest extends AbstractJdTest {
4121
@Test
4222
public void testJdk170AnnotatedClass() throws Exception {
4323
String internalClassName = "org/jd/core/test/AnnotatedClass";
4424
InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-1.7.0.zip");
4525
Loader loader = new ZipLoader(is);
46-
String source = decompile(loader, new PlainTextPrinter(), internalClassName);
26+
String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName);
4727

4828
// Check decompiled source code
4929
assertTrue(source.indexOf("@Quality(Quality.Level.HIGH)") != -1);
@@ -76,7 +56,7 @@ public void testJdk170AnnotationAuthor() throws Exception {
7656
String internalClassName = "org/jd/core/test/annotation/Author";
7757
InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-1.7.0.zip");
7858
Loader loader = new ZipLoader(is);
79-
String source = decompile(loader, new PlainTextPrinter(), internalClassName);
59+
String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName);
8060

8161
// Check decompiled source code
8262
assertTrue(source.matches(PatternMaker.make("/* 3: 0 */", "public @interface Author")));
@@ -96,7 +76,7 @@ public void testJdk170AnnotationValue() throws Exception {
9676
String internalClassName = "org/jd/core/test/annotation/Value";
9777
InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-1.7.0.zip");
9878
Loader loader = new ZipLoader(is);
99-
String source = decompile(loader, new PlainTextPrinter(), internalClassName);
79+
String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName);
10080

10181
// Check decompiled source code
10282
assertTrue(source.matches(PatternMaker.make("/* 8: 0 */", "@Retention(RetentionPolicy.RUNTIME)")));
@@ -110,39 +90,4 @@ public void testJdk170AnnotationValue() throws Exception {
11090
// Recompile decompiled source code and check errors
11191
assertTrue(CompilerUtil.compile("1.7", new JavaSourceFileObject(internalClassName, source)));
11292
}
113-
114-
protected String decompile(Loader loader, Printer printer, String internalTypeName) throws Exception {
115-
return decompile(loader, printer, internalTypeName, Collections.emptyMap());
116-
}
117-
118-
protected String decompile(Loader loader, Printer printer, String internalTypeName, Map<String, Object> configuration) throws Exception {
119-
DecompileContext decompileContext = new DecompileContext();
120-
decompileContext.setLoader(loader);
121-
decompileContext.setPrinter(printer);
122-
decompileContext.setMainInternalTypeName(internalTypeName);
123-
decompileContext.setConfiguration(configuration);
124-
125-
ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName);
126-
decompileContext.setBody(classFile);
127-
128-
converter.process(decompileContext);
129-
fragmenter.process(decompileContext);
130-
layouter.process(decompileContext);
131-
tokenizer.process(decompileContext);
132-
writer.process(decompileContext);
133-
134-
String source = printer.toString();
135-
136-
printSource(source);
137-
138-
assertTrue(source.indexOf("// Byte code:") == -1);
139-
140-
return source;
141-
}
142-
143-
protected void printSource(String source) {
144-
System.out.println("- - - - - - - - ");
145-
System.out.println(source);
146-
System.out.println("- - - - - - - - ");
147-
}
14893
}

src/test/java/org/jd/core/v1/JavaAnonymousClassTest.java

Lines changed: 3 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -7,44 +7,26 @@
77

88
package org.jd.core.v1;
99

10-
import junit.framework.TestCase;
1110
import org.jd.core.v1.api.loader.Loader;
12-
import org.jd.core.v1.api.printer.Printer;
1311
import org.jd.core.v1.compiler.CompilerUtil;
1412
import org.jd.core.v1.compiler.JavaSourceFileObject;
1513
import org.jd.core.v1.loader.ZipLoader;
16-
import org.jd.core.v1.model.classfile.ClassFile;
17-
import org.jd.core.v1.model.message.DecompileContext;
1814
import org.jd.core.v1.printer.PlainTextPrinter;
1915
import org.jd.core.v1.regex.PatternMaker;
20-
import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor;
21-
import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer;
22-
import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor;
23-
import org.jd.core.v1.service.layouter.LayoutFragmentProcessor;
24-
import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor;
25-
import org.jd.core.v1.service.writer.WriteTokenProcessor;
2616
import org.junit.Test;
2717

2818
import java.io.InputStream;
2919
import java.util.Collections;
3020
import java.util.Map;
3121

32-
public class JavaAnonymousClassTest extends TestCase {
33-
protected ClassFileDeserializer deserializer = new ClassFileDeserializer();
34-
protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor();
35-
protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor();
36-
protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor();
37-
//protected TestTokenizeJavaFragmentProcessor tokenizer = new TestTokenizeJavaFragmentProcessor();
38-
protected JavaFragmentToTokenProcessor tokenizer = new JavaFragmentToTokenProcessor();
39-
protected WriteTokenProcessor writer = new WriteTokenProcessor();
40-
22+
public class JavaAnonymousClassTest extends AbstractJdTest {
4123
@Test
4224
public void testJdk150AnonymousClass() throws Exception {
4325
String internalClassName = "org/jd/core/test/AnonymousClass";
4426
InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-1.5.0.zip");
4527
Loader loader = new ZipLoader(is);
4628
Map<String, Object> configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE);
47-
String source = decompile(loader, new PlainTextPrinter(), internalClassName, configuration);
29+
String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName, configuration);
4830

4931
// Check decompiled source code
5032
assertTrue(source.matches(PatternMaker.make(": 21 */", "Object object = new Object()")));
@@ -82,7 +64,7 @@ public void testJdk170AnonymousClass() throws Exception {
8264
InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-1.7.0.zip");
8365
Loader loader = new ZipLoader(is);
8466
Map<String, Object> configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE);
85-
String source = decompile(loader, new PlainTextPrinter(), internalClassName, configuration);
67+
String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName, configuration);
8668

8769
// Check decompiled source code
8870
assertTrue(source.matches(PatternMaker.make(": 21 */", "Object obj = new Object()")));
@@ -118,39 +100,4 @@ public void testJdk170AnonymousClass() throws Exception {
118100
new JavaSourceFileObject("org/jd/core/test/annotation/Name", "package org.jd.core.test.annotation; public @interface Name {String value();}")
119101
));
120102
}
121-
122-
protected String decompile(Loader loader, Printer printer, String internalTypeName) throws Exception {
123-
return decompile(loader, printer, internalTypeName, Collections.emptyMap());
124-
}
125-
126-
protected String decompile(Loader loader, Printer printer, String internalTypeName, Map<String, Object> configuration) throws Exception {
127-
DecompileContext decompileContext = new DecompileContext();
128-
decompileContext.setLoader(loader);
129-
decompileContext.setPrinter(printer);
130-
decompileContext.setMainInternalTypeName(internalTypeName);
131-
decompileContext.setConfiguration(configuration);
132-
133-
ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName);
134-
decompileContext.setBody(classFile);
135-
136-
converter.process(decompileContext);
137-
fragmenter.process(decompileContext);
138-
layouter.process(decompileContext);
139-
tokenizer.process(decompileContext);
140-
writer.process(decompileContext);
141-
142-
String source = printer.toString();
143-
144-
printSource(source);
145-
146-
assertTrue(source.indexOf("// Byte code:") == -1);
147-
148-
return source;
149-
}
150-
151-
protected void printSource(String source) {
152-
System.out.println("- - - - - - - - ");
153-
System.out.println(source);
154-
System.out.println("- - - - - - - - ");
155-
}
156103
}

src/test/java/org/jd/core/v1/JavaAssertTest.java

Lines changed: 3 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -7,44 +7,27 @@
77

88
package org.jd.core.v1;
99

10-
import junit.framework.TestCase;
1110
import org.jd.core.v1.api.loader.Loader;
12-
import org.jd.core.v1.api.printer.Printer;
1311
import org.jd.core.v1.compiler.CompilerUtil;
1412
import org.jd.core.v1.compiler.JavaSourceFileObject;
1513
import org.jd.core.v1.loader.ZipLoader;
16-
import org.jd.core.v1.model.classfile.ClassFile;
17-
import org.jd.core.v1.model.message.DecompileContext;
1814
import org.jd.core.v1.printer.PlainTextPrinter;
1915
import org.jd.core.v1.regex.PatternMaker;
20-
import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor;
21-
import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer;
22-
import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor;
23-
import org.jd.core.v1.service.layouter.LayoutFragmentProcessor;
24-
import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor;
25-
import org.jd.core.v1.service.writer.WriteTokenProcessor;
2616
import org.junit.Test;
2717

2818
import java.io.InputStream;
2919
import java.util.Collections;
3020
import java.util.Map;
3121

32-
public class JavaAssertTest extends TestCase {
33-
protected ClassFileDeserializer deserializer = new ClassFileDeserializer();
34-
protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor();
35-
protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor();
36-
protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor();
37-
//protected TestTokenizeJavaFragmentProcessor tokenizer = new TestTokenizeJavaFragmentProcessor();
38-
protected JavaFragmentToTokenProcessor tokenizer = new JavaFragmentToTokenProcessor();
39-
protected WriteTokenProcessor writer = new WriteTokenProcessor();
22+
public class JavaAssertTest extends AbstractJdTest {
4023

4124
@Test
4225
public void testJdk170Assert() throws Exception {
4326
String internalClassName = "org/jd/core/test/Assert";
4427
InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-1.7.0.zip");
4528
Loader loader = new ZipLoader(is);
4629
Map<String, Object> configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE);
47-
String source = decompile(loader, new PlainTextPrinter(), internalClassName, configuration);
30+
String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName, configuration);
4831

4932
// Check decompiled source code
5033
assertTrue(source.matches(PatternMaker.make("/* 16: 16 */", "assert false : \"false\";")));
@@ -65,7 +48,7 @@ public void testJdk150Assert() throws Exception {
6548
InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-1.5.0.zip");
6649
Loader loader = new ZipLoader(is);
6750
Map<String, Object> configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE);
68-
String source = decompile(loader, new PlainTextPrinter(), internalClassName, configuration);
51+
String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName, configuration);
6952

7053
// Check decompiled source code
7154
assertTrue(source.matches(PatternMaker.make("/* 16: 16 */", "assert false : \"false\";")));
@@ -79,39 +62,4 @@ public void testJdk150Assert() throws Exception {
7962
// Recompile decompiled source code and check errors
8063
assertTrue(CompilerUtil.compile("1.5", new JavaSourceFileObject(internalClassName, source)));
8164
}
82-
83-
protected String decompile(Loader loader, Printer printer, String internalTypeName) throws Exception {
84-
return decompile(loader, printer, internalTypeName, Collections.emptyMap());
85-
}
86-
87-
protected String decompile(Loader loader, Printer printer, String internalTypeName, Map<String, Object> configuration) throws Exception {
88-
DecompileContext decompileContext = new DecompileContext();
89-
decompileContext.setLoader(loader);
90-
decompileContext.setPrinter(printer);
91-
decompileContext.setMainInternalTypeName(internalTypeName);
92-
decompileContext.setConfiguration(configuration);
93-
94-
ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName);
95-
decompileContext.setBody(classFile);
96-
97-
converter.process(decompileContext);
98-
fragmenter.process(decompileContext);
99-
layouter.process(decompileContext);
100-
tokenizer.process(decompileContext);
101-
writer.process(decompileContext);
102-
103-
String source = printer.toString();
104-
105-
printSource(source);
106-
107-
assertTrue(source.indexOf("// Byte code:") == -1);
108-
109-
return source;
110-
}
111-
112-
protected void printSource(String source) {
113-
System.out.println("- - - - - - - - ");
114-
System.out.println(source);
115-
System.out.println("- - - - - - - - ");
116-
}
11765
}

0 commit comments

Comments
 (0)