diff options
Diffstat (limited to 'test/org/jetbrains/java/decompiler/SingleClassesTest.java')
-rw-r--r-- | test/org/jetbrains/java/decompiler/SingleClassesTest.java | 84 |
1 files changed, 1 insertions, 83 deletions
diff --git a/test/org/jetbrains/java/decompiler/SingleClassesTest.java b/test/org/jetbrains/java/decompiler/SingleClassesTest.java index 2443c64..73af499 100644 --- a/test/org/jetbrains/java/decompiler/SingleClassesTest.java +++ b/test/org/jetbrains/java/decompiler/SingleClassesTest.java @@ -15,35 +15,9 @@ */ package org.jetbrains.java.decompiler; -import org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler; -import org.jetbrains.java.decompiler.util.InterpreterUtil; -import org.junit.After; -import org.junit.Before; import org.junit.Test; -import java.io.*; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class SingleClassesTest { - private DecompilerTestFixture fixture; - - @Before - public void setUp() throws IOException { - fixture = new DecompilerTestFixture(); - fixture.setUp(); - } - - @After - public void tearDown() { - fixture.tearDown(); - fixture = null; - } - +public class SingleClassesTest extends SingleClassesTestBase { @Test public void testClassFields() { doTest("pkg/TestClassFields"); } @Test public void testClassLambda() { doTest("pkg/TestClassLambda"); } @Test public void testClassLoop() { doTest("pkg/TestClassLoop"); } @@ -60,60 +34,4 @@ public class SingleClassesTest { @Test public void testEnum() { doTest("pkg/TestEnum"); } @Test public void testDebugSymbols() { doTest("pkg/TestDebugSymbols"); } @Test public void testInvalidMethodSignature() { doTest("InvalidMethodSignature"); } - - private void doTest(String testFile) { - try { - File classFile = new File(fixture.getTestDataDir(), "/classes/" + testFile + ".class"); - assertTrue(classFile.isFile()); - String testName = classFile.getName().replace(".class", ""); - - ConsoleDecompiler decompiler = fixture.getDecompiler(); - for (File file : collectClasses(classFile)) { - decompiler.addSpace(file, true); - } - - decompiler.decompileContext(); - - File decompiledFile = new File(fixture.getTargetDir(), testName + ".java"); - assertTrue(decompiledFile.isFile()); - - File referenceFile = new File(fixture.getTestDataDir(), "results/" + testName + ".dec"); - assertTrue(referenceFile.isFile()); - - compareContent(decompiledFile, referenceFile); - } - catch (Exception e) { - throw new RuntimeException(e); - } - } - - private static List<File> collectClasses(File classFile) { - List<File> files = new ArrayList<File>(); - files.add(classFile); - - File parent = classFile.getParentFile(); - if (parent != null) { - final String pattern = classFile.getName().replace(".class", "") + "\\$.+\\.class"; - File[] inner = parent.listFiles(new FilenameFilter() { - @Override - public boolean accept(File dir, String name) { - return name.matches(pattern); - } - }); - if (inner != null) Collections.addAll(files, inner); - } - - return files; - } - - private static void compareContent(File decompiledFile, File referenceFile) throws IOException { - String decompiledContent = new String(InterpreterUtil.getBytes(decompiledFile), "UTF-8"); - - String referenceContent = new String(InterpreterUtil.getBytes(referenceFile), "UTF-8"); - if (InterpreterUtil.IS_WINDOWS && !referenceContent.contains("\r\n")) { - referenceContent = referenceContent.replace("\n", "\r\n"); // fix for broken Git checkout on Windows - } - - assertEquals(referenceContent, decompiledContent); - } } |