diff options
| author | Reinier Zwitserloot <reinier@zwitserloot.com> | 2010-07-21 23:52:28 +0200 |
|---|---|---|
| committer | Reinier Zwitserloot <reinier@zwitserloot.com> | 2010-07-21 23:52:28 +0200 |
| commit | 59e585a0c68959eb72be34524bdad19df5dc8a4d (patch) | |
| tree | 72860f9fce0a62bb1d0e8dbe3a021f4bd8f20ab4 | |
| parent | 1a9f8f168aa17f77c6e27d0a740b5f7614fb5c90 (diff) | |
| download | lombok-59e585a0c68959eb72be34524bdad19df5dc8a4d.tar.gz lombok-59e585a0c68959eb72be34524bdad19df5dc8a4d.tar.bz2 lombok-59e585a0c68959eb72be34524bdad19df5dc8a4d.zip | |
refactored the tests to prepare running ecj as well as delombok.
| -rw-r--r-- | build.xml | 8 | ||||
| -rw-r--r-- | test/core/src/lombok/AbstractRunTests.java | 136 | ||||
| -rw-r--r-- | test/core/src/lombok/DirectoryRunner.java | 72 | ||||
| -rw-r--r-- | test/core/src/lombok/RunTestsViaDelombok.java | 128 | ||||
| -rw-r--r-- | test/core/src/lombok/RunTestsViaEcj.java | 56 | ||||
| -rw-r--r-- | test/transform/resource/after-delombok/ClassNamedAfterGetter.java (renamed from test/delombok/resource/after/ClassNamedAfterGetter.java) | 0 | ||||
| -rw-r--r-- | test/transform/resource/after-delombok/CleanupName.java (renamed from test/delombok/resource/after/CleanupName.java) | 0 | ||||
| -rw-r--r-- | test/transform/resource/after-delombok/CleanupPlain.java (renamed from test/delombok/resource/after/CleanupPlain.java) | 0 | ||||
| -rw-r--r-- | test/transform/resource/after-delombok/CommentsInterspersed.java (renamed from test/delombok/resource/after/CommentsInterspersed.java) | 0 | ||||
| -rw-r--r-- | test/transform/resource/after-delombok/DataExtended.java | 37 | ||||
| -rw-r--r-- | test/transform/resource/after-delombok/DataIgnore.java (renamed from test/delombok/resource/after/DataIgnore.java) | 6 | ||||
| -rw-r--r-- | test/transform/resource/after-delombok/DataPlain.java (renamed from test/delombok/resource/after/DataPlain.java) | 20 | ||||
| -rw-r--r-- | test/transform/resource/after-delombok/GetterAccessLevel.java (renamed from test/delombok/resource/after/GetterAccessLevel.java) | 0 | ||||
| -rw-r--r-- | test/transform/resource/after-delombok/GetterAlreadyExists.java (renamed from test/delombok/resource/after/GetterAlreadyExists.java) | 0 | ||||
| -rw-r--r-- | test/transform/resource/after-delombok/GetterBoolean.java (renamed from test/delombok/resource/after/GetterBoolean.java) | 0 | ||||
| -rw-r--r-- | test/transform/resource/after-delombok/GetterOnClass.java (renamed from test/delombok/resource/after/GetterOnClass.java) | 0 | ||||
| -rw-r--r-- | test/transform/resource/after-delombok/GetterPlain.java (renamed from test/delombok/resource/after/GetterPlain.java) | 0 | ||||
| -rw-r--r-- | test/transform/resource/after-delombok/GetterWithDollar.java (renamed from test/delombok/resource/after/GetterWithDollar.java) | 0 | ||||
| -rw-r--r-- | test/transform/resource/after-delombok/NonNullPlain.java (renamed from test/delombok/resource/after/NonNullPlain.java) | 0 | ||||
| -rw-r--r-- | test/transform/resource/after-delombok/SetterAccessLevel.java (renamed from test/delombok/resource/after/SetterAccessLevel.java) | 0 | ||||
| -rw-r--r-- | test/transform/resource/after-delombok/SetterAlreadyExists.java (renamed from test/delombok/resource/after/SetterAlreadyExists.java) | 0 | ||||
| -rw-r--r-- | test/transform/resource/after-delombok/SetterOnClass.java (renamed from test/delombok/resource/after/SetterOnClass.java) | 0 | ||||
| -rw-r--r-- | test/transform/resource/after-delombok/SetterPlain.java (renamed from test/delombok/resource/after/SetterPlain.java) | 0 | ||||
| -rw-r--r-- | test/transform/resource/after-delombok/SetterWithDollar.java (renamed from test/delombok/resource/after/SetterWithDollar.java) | 0 | ||||
| -rw-r--r-- | test/transform/resource/after-delombok/SneakyThrowsMultiple.java (renamed from test/delombok/resource/after/SneakyThrowsMultiple.java) | 0 | ||||
| -rw-r--r-- | test/transform/resource/after-delombok/SneakyThrowsPlain.java (renamed from test/delombok/resource/after/SneakyThrowsPlain.java) | 0 | ||||
| -rw-r--r-- | test/transform/resource/after-delombok/SneakyThrowsSingle.java (renamed from test/delombok/resource/after/SneakyThrowsSingle.java) | 0 | ||||
| -rw-r--r-- | test/transform/resource/after-delombok/SynchronizedName.java (renamed from test/delombok/resource/after/SynchronizedName.java) | 0 | ||||
| -rw-r--r-- | test/transform/resource/after-delombok/SynchronizedPlain.java (renamed from test/delombok/resource/after/SynchronizedPlain.java) | 0 | ||||
| -rw-r--r-- | test/transform/resource/after-delombok/ToStringInner.java (renamed from test/delombok/resource/after/ToStringInner.java) | 12 | ||||
| -rw-r--r-- | test/transform/resource/after-delombok/ToStringPlain.java (renamed from test/delombok/resource/after/ToStringPlain.java) | 0 | ||||
| -rw-r--r-- | test/transform/resource/before/ClassNamedAfterGetter.java (renamed from test/delombok/resource/before/ClassNamedAfterGetter.java) | 0 | ||||
| -rw-r--r-- | test/transform/resource/before/CleanupName.java (renamed from test/delombok/resource/before/CleanupName.java) | 0 | ||||
| -rw-r--r-- | test/transform/resource/before/CleanupPlain.java (renamed from test/delombok/resource/before/CleanupPlain.java) | 0 | ||||
| -rw-r--r-- | test/transform/resource/before/CommentsInterspersed.java (renamed from test/delombok/resource/before/CommentsInterspersed.java) | 0 | ||||
| -rw-r--r-- | test/transform/resource/before/DataExtended.java | 5 | ||||
| -rw-r--r-- | test/transform/resource/before/DataIgnore.java (renamed from test/delombok/resource/before/DataIgnore.java) | 0 | ||||
| -rw-r--r-- | test/transform/resource/before/DataPlain.java (renamed from test/delombok/resource/before/DataPlain.java) | 0 | ||||
| -rw-r--r-- | test/transform/resource/before/GetterAccessLevel.java (renamed from test/delombok/resource/before/GetterAccessLevel.java) | 0 | ||||
| -rw-r--r-- | test/transform/resource/before/GetterAlreadyExists.java (renamed from test/delombok/resource/before/GetterAlreadyExists.java) | 0 | ||||
| -rw-r--r-- | test/transform/resource/before/GetterBoolean.java (renamed from test/delombok/resource/before/GetterBoolean.java) | 0 | ||||
| -rw-r--r-- | test/transform/resource/before/GetterOnClass.java (renamed from test/delombok/resource/before/GetterOnClass.java) | 0 | ||||
| -rw-r--r-- | test/transform/resource/before/GetterPlain.java (renamed from test/delombok/resource/before/GetterPlain.java) | 0 | ||||
| -rw-r--r-- | test/transform/resource/before/GetterWithDollar.java (renamed from test/delombok/resource/before/GetterWithDollar.java) | 0 | ||||
| -rw-r--r-- | test/transform/resource/before/NonNullPlain.java (renamed from test/delombok/resource/before/NonNullPlain.java) | 0 | ||||
| -rw-r--r-- | test/transform/resource/before/SetterAccessLevel.java (renamed from test/delombok/resource/before/SetterAccessLevel.java) | 0 | ||||
| -rw-r--r-- | test/transform/resource/before/SetterAlreadyExists.java (renamed from test/delombok/resource/before/SetterAlreadyExists.java) | 0 | ||||
| -rw-r--r-- | test/transform/resource/before/SetterOnClass.java (renamed from test/delombok/resource/before/SetterOnClass.java) | 0 | ||||
| -rw-r--r-- | test/transform/resource/before/SetterPlain.java (renamed from test/delombok/resource/before/SetterPlain.java) | 0 | ||||
| -rw-r--r-- | test/transform/resource/before/SetterWithDollar.java (renamed from test/delombok/resource/before/SetterWithDollar.java) | 0 | ||||
| -rw-r--r-- | test/transform/resource/before/SneakyThrowsMultiple.java (renamed from test/delombok/resource/before/SneakyThrowsMultiple.java) | 0 | ||||
| -rw-r--r-- | test/transform/resource/before/SneakyThrowsPlain.java (renamed from test/delombok/resource/before/SneakyThrowsPlain.java) | 0 | ||||
| -rw-r--r-- | test/transform/resource/before/SneakyThrowsSingle.java (renamed from test/delombok/resource/before/SneakyThrowsSingle.java) | 0 | ||||
| -rw-r--r-- | test/transform/resource/before/SynchronizedName.java (renamed from test/delombok/resource/before/SynchronizedName.java) | 0 | ||||
| -rw-r--r-- | test/transform/resource/before/SynchronizedPlain.java (renamed from test/delombok/resource/before/SynchronizedPlain.java) | 0 | ||||
| -rw-r--r-- | test/transform/resource/before/ToStringInner.java (renamed from test/delombok/resource/before/ToStringInner.java) | 1 | ||||
| -rw-r--r-- | test/transform/resource/before/ToStringPlain.java (renamed from test/delombok/resource/before/ToStringPlain.java) | 0 | ||||
| -rw-r--r-- | test/transform/resource/messages-delombok/GetterAlreadyExists.java.messages (renamed from test/delombok/resource/before/GetterAlreadyExists.java.messages) | 0 | ||||
| -rw-r--r-- | test/transform/resource/messages-delombok/GetterBoolean.java.messages (renamed from test/delombok/resource/before/GetterBoolean.java.messages) | 0 | ||||
| -rw-r--r-- | test/transform/resource/messages-delombok/SetterAlreadyExists.java.messages (renamed from test/delombok/resource/before/SetterAlreadyExists.java.messages) | 0 | ||||
| -rw-r--r-- | test/transform/src/lombok/transform/TestLombokFilesIdempotent.java (renamed from test/delombok/src/lombok/delombok/TestLombokFilesIdempotent.java) | 32 | ||||
| -rw-r--r-- | test/transform/src/lombok/transform/TestSourceFiles.java (renamed from test/delombok/src/lombok/delombok/TestSourceFiles.java) | 25 | ||||
| -rw-r--r-- | test/transform/src/lombok/transform/TestWithDelombok.java (renamed from test/delombok/src/lombok/delombok/TestLombokFiles.java) | 32 |
63 files changed, 385 insertions, 185 deletions
@@ -168,7 +168,7 @@ the common tasks and can be called on to run the main aspects of all the sub-scr <srcdir dir="src/installer" /> <srcdir dir="src/delombok" /> <srcdir dir="experimental/src" /> - <srcdir dir="test/delombok/src" /> + <srcdir dir="test/transform/src" /> <srcdir dir="test/core/src" /> <conf name="build" sources="contrib" /> <conf name="test" sources="contrib" /> @@ -206,11 +206,11 @@ the common tasks and can be called on to run the main aspects of all the sub-scr <classpath refid="test.path" /> <classpath path="build/lombok" /> <src path="test/core/src" /> - <src path="test/delombok/src" /> + <src path="test/transform/src" /> </ivy:compile> <copy todir="build/tests"> <fileset dir="test/pretty/resource" /> - <fileset dir="test/delombok/resource" /> + <fileset dir="test/transform/resource" /> </copy> </target> @@ -224,7 +224,7 @@ the common tasks and can be called on to run the main aspects of all the sub-scr <fileset dir="test/core/src"> <include name="**/Test*.java" /> </fileset> - <fileset dir="test/delombok/src"> + <fileset dir="test/transform/src"> <include name="**/Test*.java" /> </fileset> </batchtest> diff --git a/test/core/src/lombok/AbstractRunTests.java b/test/core/src/lombok/AbstractRunTests.java new file mode 100644 index 00000000..ad9c45af --- /dev/null +++ b/test/core/src/lombok/AbstractRunTests.java @@ -0,0 +1,136 @@ +/* + * Copyright © 2009-2010 Reinier Zwitserloot and Roel Spilker. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package lombok; + +import static org.junit.Assert.*; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.IOException; +import java.io.StringWriter; +import java.util.ArrayList; +import java.util.List; + +public abstract class AbstractRunTests { + protected static final String LINE_SEPARATOR = System.getProperty("line.separator"); + + public void compareFile(DirectoryRunner.TestParams params, File file) throws Throwable { + StringBuilder messages = new StringBuilder(); + StringWriter result = new StringWriter(); + transformCode(messages, result, file); + compare( + file.getName(), + readFile(params.getAfterDirectory(), file, false), + result.toString(), + readFile(params.getMessagesDirectory(), file, true), + messages.toString(), + params.printErrors()); + } + + protected abstract void transformCode(StringBuilder message, StringWriter result, File file) throws Throwable; + + protected String readFile(File file) throws IOException { + BufferedReader reader; + try { + reader = new BufferedReader(new FileReader(file)); + } catch (FileNotFoundException e) { + return ""; + } + StringBuilder result = new StringBuilder(); + String line; + while ((line = reader.readLine()) != null) { + result.append(line); + result.append(LINE_SEPARATOR); + } + reader.close(); + return result.toString(); + } + + private String readFile(File dir, File file, boolean messages) throws IOException { + if (dir == null) return ""; + return readFile(new File(dir, file.getName() + (messages ? ".messages" : ""))); + } + + private void compare(String name, String expectedFile, String actualFile, String expectedMessages, String actualMessages, boolean printErrors) throws Throwable { + try { + compareContent(name, expectedFile, actualFile); + } catch (Throwable e) { + if (printErrors) { + System.out.println("***** " + name + " *****"); + System.out.println(e.getMessage()); + System.out.println("**** Expected ******"); + System.out.println(expectedFile); + System.out.println("**** Actual ******"); + System.out.println(actualFile); + System.out.println("*******************"); + } + throw e; + } + try { + compareContent(name, expectedMessages, actualMessages); + } + catch (Throwable e) { + if (printErrors) { + System.out.println("***** " + name + " *****"); + System.out.println(e.getMessage()); + System.out.println("**** Expected ******"); + System.out.println(expectedMessages); + System.out.println("**** Actual ******"); + System.out.println(actualMessages); + System.out.println("*******************"); + } + throw e; + } + } + + private static void compareContent(String name, String expectedFile, String actualFile) { + String[] expectedLines = expectedFile.split("(\\r?\\n)"); + String[] actualLines = actualFile.split("(\\r?\\n)"); + if (actualLines[0].startsWith("// Generated by delombok at ")) { + actualLines[0] = ""; + } + expectedLines = removeBlanks(expectedLines); + actualLines = removeBlanks(actualLines); + int size = Math.min(expectedLines.length, actualLines.length); + for (int i = 0; i < size; i++) { + String expected = expectedLines[i]; + String actual = actualLines[i]; + assertEquals(String.format("Difference in %s on line %d", name, i + 1), expected, actual); + } + if (expectedLines.length > actualLines.length) { + fail(String.format("Missing line %d in generated %s: %s", size + 1, name, expectedLines[size])); + } + if (expectedLines.length < actualLines.length) { + fail(String.format("Extra line %d in generated %s: %s", size + 1, name, actualLines[size])); + } + } + + private static String[] removeBlanks(String[] in) { + List<String> out = new ArrayList<String>(); + for (String s : in) { + if (!s.trim().isEmpty()) out.add(s); + } + return out.toArray(new String[0]); + } +} diff --git a/test/core/src/lombok/DirectoryRunner.java b/test/core/src/lombok/DirectoryRunner.java index db474ff0..89fe6ab0 100644 --- a/test/core/src/lombok/DirectoryRunner.java +++ b/test/core/src/lombok/DirectoryRunner.java @@ -1,3 +1,24 @@ +/* + * Copyright © 2009-2010 Reinier Zwitserloot and Roel Spilker. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ package lombok; import java.io.BufferedReader; @@ -6,7 +27,6 @@ import java.io.FileFilter; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; -import java.lang.reflect.Method; import java.util.Map; import java.util.TreeMap; @@ -16,6 +36,17 @@ import org.junit.runner.notification.Failure; import org.junit.runner.notification.RunNotifier; public class DirectoryRunner extends Runner { + public enum Compiler { + DELOMBOK, JAVAC, ECJ; + } + + public interface TestParams { + Compiler getCompiler(); + boolean printErrors(); + File getBeforeDirectory(); + File getAfterDirectory(); + File getMessagesDirectory(); + } private static final FileFilter JAVA_FILE_FILTER = new FileFilter() { @Override public boolean accept(File file) { @@ -26,11 +57,13 @@ public class DirectoryRunner extends Runner { private final Description description; private final Map<String, Description> tests = new TreeMap<String, Description>(); private final Throwable failure; - private File beforeDirectory; - private File afterDirectory; + private final TestParams params; - public DirectoryRunner(Class<?> testClass) { + public DirectoryRunner(Class<?> testClass) throws Exception { description = Description.createSuiteDescription(testClass); + + this.params = (TestParams) testClass.newInstance(); + Throwable error = null; try { addTests(testClass); @@ -40,26 +73,20 @@ public class DirectoryRunner extends Runner { } this.failure = error; } - + private void addTests(Class<?> testClass) throws Exception { - Method beforeMethod = testClass.getDeclaredMethod("getBeforeDirectory"); - beforeDirectory = (File) beforeMethod.invoke(null); - - Method afterMethod = testClass.getDeclaredMethod("getAfterDirectory"); - afterDirectory = (File) afterMethod.invoke(null); - - for (File file : beforeDirectory.listFiles(JAVA_FILE_FILTER)) { + for (File file : params.getBeforeDirectory().listFiles(JAVA_FILE_FILTER)) { Description testDescription = Description.createTestDescription(testClass, file.getName()); description.addChild(testDescription); tests.put(file.getName(), testDescription); } } - + @Override public Description getDescription() { return description; } - + @Override public void run(RunNotifier notifier) { if (failure != null) { @@ -83,16 +110,25 @@ public class DirectoryRunner extends Runner { notifier.fireTestFinished(testDescription); } } - + private boolean runTest(String fileName) throws Throwable { - File file = new File(beforeDirectory, fileName); + File file = new File(params.getBeforeDirectory(), fileName); if (mustIgnore(file)) { return false; } - RunTestsViaDelombok.compareFile(beforeDirectory, afterDirectory, file); + switch (params.getCompiler()) { + case DELOMBOK: + new RunTestsViaDelombok().compareFile(params, file); + break; + case ECJ: + new RunTestsViaEcj().compareFile(params, file); + break; + case JAVAC: + throw new UnsupportedOperationException(); + } return true; } - + private boolean mustIgnore(File file) throws FileNotFoundException, IOException { BufferedReader reader = new BufferedReader(new FileReader(file)); String line = reader.readLine(); diff --git a/test/core/src/lombok/RunTestsViaDelombok.java b/test/core/src/lombok/RunTestsViaDelombok.java index 37ff8f69..7f99b99e 100644 --- a/test/core/src/lombok/RunTestsViaDelombok.java +++ b/test/core/src/lombok/RunTestsViaDelombok.java @@ -1,5 +1,5 @@ /* - * Copyright © 2009 Reinier Zwitserloot and Roel Spilker. + * Copyright © 2009-2010 Reinier Zwitserloot and Roel Spilker. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -21,17 +21,8 @@ */ package lombok; -import static org.junit.Assert.*; - -import java.io.BufferedReader; import java.io.File; -import java.io.FileFilter; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.IOException; import java.io.StringWriter; -import java.util.ArrayList; -import java.util.List; import java.util.Locale; import javax.tools.Diagnostic; @@ -40,124 +31,21 @@ import javax.tools.JavaFileObject; import lombok.delombok.Delombok; -public class RunTestsViaDelombok { - private static final FileFilter JAVA_FILE_FILTER = new FileFilter() { - @Override public boolean accept(File file) { - return file.isFile() && file.getName().endsWith(".java"); - } - }; - - private static Delombok delombok = new Delombok(); - private static volatile boolean printErrors = false; - - private static final String LINE_SEPARATOR = System.getProperty("line.separator"); +public class RunTestsViaDelombok extends AbstractRunTests { + private Delombok delombok = new Delombok(); - public static void runComparison(File beforeDir, File afterDir) throws Throwable { - File[] listFiles = beforeDir.listFiles(JAVA_FILE_FILTER); - - for (File file : listFiles) { - compareFile(beforeDir, afterDir, file); - } - } - - public static void compareFile(File beforeDir, File afterDir, File file) throws Throwable { + @Override + public void transformCode(final StringBuilder messages, StringWriter result, File file) throws Throwable { delombok.setVerbose(false); delombok.setForceProcess(true); delombok.setCharset("UTF-8"); - - final StringBuilder messages = new StringBuilder(); + delombok.setDiagnosticsListener(new DiagnosticListener<JavaFileObject>() { @Override public void report(Diagnostic<? extends JavaFileObject> d) { messages.append(String.format("%d:%d %s %s\n", d.getLineNumber(), d.getColumnNumber(), d.getKind(), d.getMessage(Locale.ENGLISH))); } }); - StringWriter writer = new StringWriter(); - delombok.delombok(file.getAbsolutePath(), writer); - compare(file.getName(), readFile(afterDir, file, false), writer.toString(), readFile(beforeDir, file, true), messages.toString()); - } - - public static void printErrors(boolean print) { - printErrors = print; - } - - private static void compare(String name, String expectedFile, String actualFile, String expectedMessages, String actualMessages) throws Throwable { - try { - compareContent(name, expectedFile, actualFile); - } - catch (Throwable e) { - if (printErrors) { - System.out.println("***** " + name + " *****"); - System.out.println(e.getMessage()); - System.out.println("**** Expected ******"); - System.out.println(expectedFile); - System.out.println("**** Actual ******"); - System.out.println(actualFile); - System.out.println("*******************"); - } - throw e; - } - try { - compareContent(name, expectedMessages, actualMessages); - } - catch (Throwable e) { - if (printErrors) { - System.out.println("***** " + name + " *****"); - System.out.println(e.getMessage()); - System.out.println("**** Expected ******"); - System.out.println(expectedMessages); - System.out.println("**** Actual ******"); - System.out.println(actualMessages); - System.out.println("*******************"); - } - throw e; - } - } - - private static void compareContent(String name, String expectedFile, String actualFile) { - String[] expectedLines = expectedFile.split("(\\r?\\n)"); - String[] actualLines = actualFile.split("(\\r?\ |
