diff options
Diffstat (limited to 'src/main/org/apache/tools/ant/taskdefs/optional/junit/FailureRecorder.java')
-rw-r--r-- | src/main/org/apache/tools/ant/taskdefs/optional/junit/FailureRecorder.java | 61 |
1 files changed, 36 insertions, 25 deletions
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/junit/FailureRecorder.java b/src/main/org/apache/tools/ant/taskdefs/optional/junit/FailureRecorder.java index bfcbfedb2..26ef42463 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/junit/FailureRecorder.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/junit/FailureRecorder.java @@ -23,12 +23,11 @@ import java.io.FileWriter; import java.io.IOException; import java.io.OutputStream; import java.text.SimpleDateFormat; +import java.util.Comparator; import java.util.Date; import java.util.Iterator; import java.util.SortedSet; import java.util.TreeSet; -import java.util.Vector; - import junit.framework.AssertionFailedError; import junit.framework.Test; @@ -89,7 +88,7 @@ public class FailureRecorder extends ProjectComponent implements JUnitResultForm private static final String LOG_PREFIX = " [junit]"; /** Class names of failed tests without duplicates. */ - private static SortedSet/*<TestInfos>*/ failedTests = new TreeSet(); + private static SortedSet<TestInfos> failedTests = new TreeSet<>(); /** A writer for writing the generated source to. */ private BufferedWriter writer; @@ -146,20 +145,13 @@ public class FailureRecorder extends ProjectComponent implements JUnitResultForm * @param project * project reference */ + @Override public void setProject(Project project) { // store project reference for logging super.setProject(project); // check if already registered - boolean alreadyRegistered = false; - Vector allListeners = project.getBuildListeners(); - final int size = allListeners.size(); - for (int i = 0; i < size; i++) { - Object listener = allListeners.get(i); - if (listener instanceof FailureRecorder) { - alreadyRegistered = true; - break; - } - } + boolean alreadyRegistered = project.getBuildListeners().stream() + .anyMatch(FailureRecorder.class::isInstance); // register if needed if (!alreadyRegistered) { verbose("Register FailureRecorder (@" + this.hashCode() + ") as BuildListener"); @@ -173,6 +165,7 @@ public class FailureRecorder extends ProjectComponent implements JUnitResultForm * Not used * {@inheritDoc} */ + @Override public void endTestSuite(JUnitTest suite) throws BuildException { } @@ -182,6 +175,7 @@ public class FailureRecorder extends ProjectComponent implements JUnitResultForm * @param throwable the reason it errored. * @see junit.framework.TestListener#addError(junit.framework.Test, java.lang.Throwable) */ + @Override public void addError(Test test, Throwable throwable) { failedTests.add(new TestInfos(test)); } @@ -194,6 +188,7 @@ public class FailureRecorder extends ProjectComponent implements JUnitResultForm * @see junit.framework.TestListener#addFailure(junit.framework.Test, junit.framework.AssertionFailedError) */ // CheckStyle:LineLengthCheck ON + @Override public void addFailure(Test test, AssertionFailedError error) { failedTests.add(new TestInfos(test)); } @@ -202,6 +197,7 @@ public class FailureRecorder extends ProjectComponent implements JUnitResultForm * Not used * {@inheritDoc} */ + @Override public void setOutput(OutputStream out) { // unused, close output file so it can be deleted before the VM exits if (out != System.out) { @@ -213,6 +209,7 @@ public class FailureRecorder extends ProjectComponent implements JUnitResultForm * Not used * {@inheritDoc} */ + @Override public void setSystemError(String err) { } @@ -220,6 +217,7 @@ public class FailureRecorder extends ProjectComponent implements JUnitResultForm * Not used * {@inheritDoc} */ + @Override public void setSystemOutput(String out) { } @@ -227,6 +225,7 @@ public class FailureRecorder extends ProjectComponent implements JUnitResultForm * Not used * {@inheritDoc} */ + @Override public void startTestSuite(JUnitTest suite) throws BuildException { } @@ -234,6 +233,7 @@ public class FailureRecorder extends ProjectComponent implements JUnitResultForm * Not used * {@inheritDoc} */ + @Override public void endTest(Test test) { } @@ -241,6 +241,7 @@ public class FailureRecorder extends ProjectComponent implements JUnitResultForm * Not used * {@inheritDoc} */ + @Override public void startTest(Test test) { } @@ -248,7 +249,7 @@ public class FailureRecorder extends ProjectComponent implements JUnitResultForm private void writeJavaClass() { try { - File sourceFile = new File((getLocationName() + ".java")); + File sourceFile = new File(getLocationName() + ".java"); verbose("Write collector class to '" + sourceFile.getAbsolutePath() + "'"); if (sourceFile.exists() && !sourceFile.delete()) { @@ -299,8 +300,8 @@ public class FailureRecorder extends ProjectComponent implements JUnitResultForm writer.newLine(); writer.write(" TestSuite suite = new TestSuite();"); writer.newLine(); - for (Iterator iter = failedTests.iterator(); iter.hasNext();) { - TestInfos testInfos = (TestInfos) iter.next(); + for (Iterator<TestInfos> iter = failedTests.iterator(); iter.hasNext();) { + TestInfos testInfos = iter.next(); writer.write(" suite.addTest("); writer.write(String.valueOf(testInfos)); writer.write(");"); @@ -323,6 +324,7 @@ public class FailureRecorder extends ProjectComponent implements JUnitResultForm * Logging facade in INFO-mode. * @param message Log-message */ + @Override public void log(String message) { getProject().log(LOG_PREFIX + " " + message, Project.MSG_INFO); } @@ -338,7 +340,7 @@ public class FailureRecorder extends ProjectComponent implements JUnitResultForm /** * TestInfos holds information about a given test for later use. */ - public static class TestInfos implements Comparable { + public static class TestInfos implements Comparable<TestInfos> { /** The class name of the test. */ private final String className; @@ -363,6 +365,7 @@ public class FailureRecorder extends ProjectComponent implements JUnitResultForm * @see java.lang.Object#toString() * @see FailureRecorder#createSuiteMethod() */ + @Override public String toString() { return "new " + className + "(\"" + methodName + "\")"; } @@ -374,17 +377,18 @@ public class FailureRecorder extends ProjectComponent implements JUnitResultForm * @see java.lang.Comparable#compareTo * @see SortedSet#comparator() */ - public int compareTo(Object other) { - if (other instanceof TestInfos) { - TestInfos otherInfos = (TestInfos) other; - return toString().compareTo(otherInfos.toString()); - } else { - return -1; - } + @Override + public int compareTo(TestInfos other) { + return Comparator.comparing(Object::toString).compare(this, other); } + + @Override public boolean equals(Object obj) { - return obj instanceof TestInfos && toString().equals(obj.toString()); + return obj == this || obj instanceof TestInfos + && toString().equals(obj.toString()); } + + @Override public int hashCode() { return toString().hashCode(); } @@ -396,6 +400,7 @@ public class FailureRecorder extends ProjectComponent implements JUnitResultForm * Not used * {@inheritDoc} */ + @Override public void buildFinished(BuildEvent event) { } @@ -403,6 +408,7 @@ public class FailureRecorder extends ProjectComponent implements JUnitResultForm * Not used * {@inheritDoc} */ + @Override public void buildStarted(BuildEvent event) { } @@ -410,6 +416,7 @@ public class FailureRecorder extends ProjectComponent implements JUnitResultForm * Not used * {@inheritDoc} */ + @Override public void messageLogged(BuildEvent event) { } @@ -417,6 +424,7 @@ public class FailureRecorder extends ProjectComponent implements JUnitResultForm * Not used * {@inheritDoc} */ + @Override public void targetFinished(BuildEvent event) { } @@ -424,6 +432,7 @@ public class FailureRecorder extends ProjectComponent implements JUnitResultForm * Not used * {@inheritDoc} */ + @Override public void targetStarted(BuildEvent event) { } @@ -433,6 +442,7 @@ public class FailureRecorder extends ProjectComponent implements JUnitResultForm * @param event not used * @see org.apache.tools.ant.BuildListener#taskFinished(org.apache.tools.ant.BuildEvent) */ + @Override public void taskFinished(BuildEvent event) { if (!failedTests.isEmpty()) { writeJavaClass(); @@ -443,6 +453,7 @@ public class FailureRecorder extends ProjectComponent implements JUnitResultForm * Not used * {@inheritDoc} */ + @Override public void taskStarted(BuildEvent event) { } |