diff --git a/docs/pages/release_notes.md b/docs/pages/release_notes.md index 870cbde01f..ece6707848 100644 --- a/docs/pages/release_notes.md +++ b/docs/pages/release_notes.md @@ -26,6 +26,14 @@ This is a {{ site.pmd.release_type }} release. ### API Changes +#### Deprecated API + +- Many methods of {% jdoc !!core::Report %}. They are replaced by accessors +that produce a List. For example, {% jdoc !a!core::Report#iterator() %} +(and implementing Iterable) and {% jdoc !a!core::Report#isEmpty() %} are both +replaced by {% jdoc !a!core::Report#getViolations() %}. +- {% jdoc !!core::Report.ReadableDuration %} + ### External Contributions * [#2677](https://github.com/pmd/pmd/pull/2677): \[java] RedundantFieldInitializer can not detect a special case for char initialize: `char foo = '\0';` - [Mykhailo Palahuta](https://github.com/Drofff) diff --git a/pmd-apex/src/test/java/net/sourceforge/pmd/lang/apex/SuppressWarningsTest.java b/pmd-apex/src/test/java/net/sourceforge/pmd/lang/apex/SuppressWarningsTest.java index bf8991bb1b..3c29115ee1 100644 --- a/pmd-apex/src/test/java/net/sourceforge/pmd/lang/apex/SuppressWarningsTest.java +++ b/pmd-apex/src/test/java/net/sourceforge/pmd/lang/apex/SuppressWarningsTest.java @@ -40,10 +40,10 @@ public class SuppressWarningsTest extends RuleTst { Report rpt = new Report(); runTestFromString(TEST1, new FooRule(), rpt, LanguageRegistry.getLanguage(ApexLanguageModule.NAME).getDefaultVersion()); - assertEquals(0, rpt.size()); + assertEquals(0, rpt.getViolations().size()); runTestFromString(TEST2, new FooRule(), rpt, LanguageRegistry.getLanguage(ApexLanguageModule.NAME).getDefaultVersion()); - assertEquals(0, rpt.size()); + assertEquals(0, rpt.getViolations().size()); } @Test @@ -51,7 +51,7 @@ public class SuppressWarningsTest extends RuleTst { Report rpt = new Report(); runTestFromString(TEST3, new FooRule(), rpt, LanguageRegistry.getLanguage(ApexLanguageModule.NAME).getDefaultVersion()); - assertEquals(0, rpt.size()); + assertEquals(0, rpt.getViolations().size()); } @Test @@ -59,7 +59,7 @@ public class SuppressWarningsTest extends RuleTst { Report rpt = new Report(); runTestFromString(TEST4, new FooRule(), rpt, LanguageRegistry.getLanguage(ApexLanguageModule.NAME).getDefaultVersion()); - assertEquals(1, rpt.size()); + assertEquals(1, rpt.getViolations().size()); } @Test @@ -67,7 +67,7 @@ public class SuppressWarningsTest extends RuleTst { Report rpt = new Report(); runTestFromString(TEST5, new FooRule(), rpt, LanguageRegistry.getLanguage(ApexLanguageModule.NAME).getDefaultVersion()); - assertEquals(0, rpt.size()); + assertEquals(0, rpt.getViolations().size()); } @Test @@ -75,7 +75,7 @@ public class SuppressWarningsTest extends RuleTst { Report rpt = new Report(); runTestFromString(TEST6, new FooRule(), rpt, LanguageRegistry.getLanguage(ApexLanguageModule.NAME).getDefaultVersion()); - assertEquals(1, rpt.size()); + assertEquals(1, rpt.getViolations().size()); } @Test @@ -83,7 +83,7 @@ public class SuppressWarningsTest extends RuleTst { Report rpt = new Report(); runTestFromString(TEST7, new FooRule(), rpt, LanguageRegistry.getLanguage(ApexLanguageModule.NAME).getDefaultVersion()); - assertEquals(1, rpt.size()); + assertEquals(1, rpt.getViolations().size()); } @Test @@ -91,7 +91,7 @@ public class SuppressWarningsTest extends RuleTst { Report rpt = new Report(); runTestFromString(TEST8, new FooRule(), rpt, LanguageRegistry.getLanguage(ApexLanguageModule.NAME).getDefaultVersion()); - assertEquals(1, rpt.size()); + assertEquals(1, rpt.getViolations().size()); } @Test @@ -99,7 +99,7 @@ public class SuppressWarningsTest extends RuleTst { Report rpt = new Report(); runTestFromString(TEST9, new FooRule(), rpt, LanguageRegistry.getLanguage(ApexLanguageModule.NAME).getDefaultVersion()); - assertEquals(1, rpt.size()); + assertEquals(1, rpt.getViolations().size()); } @Test @@ -107,7 +107,7 @@ public class SuppressWarningsTest extends RuleTst { Report rpt = new Report(); runTestFromString(TEST9_MULTIPLE_VALUES, new FooRule(), rpt, LanguageRegistry.getLanguage(ApexLanguageModule.NAME).getDefaultVersion()); - assertEquals(0, rpt.size()); + assertEquals(0, rpt.getViolations().size()); } @Test @@ -115,7 +115,7 @@ public class SuppressWarningsTest extends RuleTst { Report rpt = new Report(); runTestFromString(TEST10, new FooRule(), rpt, LanguageRegistry.getLanguage(ApexLanguageModule.NAME).getDefaultVersion()); - assertEquals(2, rpt.size()); + assertEquals(2, rpt.getViolations().size()); } @Test @@ -123,7 +123,7 @@ public class SuppressWarningsTest extends RuleTst { Report rpt = new Report(); runTestFromString(TEST11, new FooRule(), rpt, LanguageRegistry.getLanguage(ApexLanguageModule.NAME).getDefaultVersion()); - assertEquals(2, rpt.size()); + assertEquals(2, rpt.getViolations().size()); } @Test @@ -131,7 +131,7 @@ public class SuppressWarningsTest extends RuleTst { Report rpt = new Report(); runTestFromString(TEST12, new FooRule(), rpt, LanguageRegistry.getLanguage(ApexLanguageModule.NAME).getDefaultVersion()); - assertEquals(0, rpt.size()); + assertEquals(0, rpt.getViolations().size()); } @Test @@ -139,7 +139,7 @@ public class SuppressWarningsTest extends RuleTst { Report rpt = new Report(); runTestFromString(TEST13, new BarRule(), rpt, LanguageRegistry.getLanguage(ApexLanguageModule.NAME).getDefaultVersion()); - assertEquals(0, rpt.size()); + assertEquals(0, rpt.getViolations().size()); } @Test @@ -147,7 +147,7 @@ public class SuppressWarningsTest extends RuleTst { Report rpt = new Report(); runTestFromString(TEST14, new FooRule(), rpt, LanguageRegistry.getLanguage(ApexLanguageModule.NAME).getDefaultVersion()); - assertEquals(0, rpt.size()); + assertEquals(0, rpt.getViolations().size()); List suppressions = rpt.getSuppressedRuleViolations(); assertEquals(1, suppressions.size()); @@ -158,7 +158,7 @@ public class SuppressWarningsTest extends RuleTst { Report rpt = new Report(); runTestFromString(TEST15, new FooRule(), rpt, LanguageRegistry.getLanguage(ApexLanguageModule.NAME).getDefaultVersion()); - assertEquals(0, rpt.size()); + assertEquals(0, rpt.getViolations().size()); List suppressions = rpt.getSuppressedRuleViolations(); assertEquals(1, suppressions.size()); diff --git a/pmd-apex/src/test/java/net/sourceforge/pmd/lang/apex/rule/AbstractApexRuleTest.java b/pmd-apex/src/test/java/net/sourceforge/pmd/lang/apex/rule/AbstractApexRuleTest.java index 20e5799d6a..ab46471221 100644 --- a/pmd-apex/src/test/java/net/sourceforge/pmd/lang/apex/rule/AbstractApexRuleTest.java +++ b/pmd-apex/src/test/java/net/sourceforge/pmd/lang/apex/rule/AbstractApexRuleTest.java @@ -47,7 +47,7 @@ public class AbstractApexRuleTest extends ApexParserTestBase { ctx.setLanguageVersion(apex.getDefaultVersion()); TopLevelRule rule = new TopLevelRule(); rule.apply(node, ctx); - assertEquals(1, ctx.getReport().size()); + assertEquals(1, ctx.getReport().getViolations().size()); } private static class TopLevelRule extends AbstractApexRule { diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/Report.java b/pmd-core/src/main/java/net/sourceforge/pmd/Report.java index 9f98fc680d..339df0f5e8 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/Report.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/Report.java @@ -8,13 +8,9 @@ import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.io.StringWriter; -import java.time.Duration; import java.util.ArrayList; import java.util.Collections; -import java.util.HashMap; -import java.util.Iterator; import java.util.List; -import java.util.Map; import net.sourceforge.pmd.renderers.AbstractAccumulatingRenderer; @@ -23,17 +19,14 @@ import net.sourceforge.pmd.renderers.AbstractAccumulatingRenderer; * includes violations, suppressed violations, metrics, error during processing * and configuration errors. */ -public class Report implements Iterable { +public class Report { - // Note that this and the above data structure are both being maintained for - // a bit - private final List violations = new ArrayList<>(); private final List listeners = new ArrayList<>(); - private List errors; - private List configErrors; - private long start; - private long end; - private List suppressedRuleViolations = new ArrayList<>(); + + private final List violations = new ArrayList<>(); + private final List suppressedRuleViolations = new ArrayList<>(); + private final List errors = new ArrayList<>(); + private final List configErrors = new ArrayList<>(); /** * Creates a new, initialized, empty report for the given file name. @@ -55,51 +48,6 @@ public class Report implements Iterable { return report; } - /** - * Represents a duration. Useful for reporting processing time. - */ - public static class ReadableDuration { - private final long duration; - - /** - * Creates a new duration. - * - * @param duration - * the duration in milliseconds. - */ - public ReadableDuration(long duration) { - this.duration = duration; - } - - /** - * Gets a human readable representation of the duration, such as "1h 3m - * 5s". - * - * @return human readable representation of the duration - */ - public String getTime() { - assert this.duration >= 0; - Duration duration = Duration.ofMillis(this.duration); - long seconds = duration.getSeconds(); - - long hours = seconds / 3600; - seconds -= hours * 3600; - long minutes = seconds / 60; - seconds -= minutes * 60; - - StringBuilder res = new StringBuilder(); - if (hours > 0) { - res.append(hours).append("h "); - } - if (hours > 0 || minutes > 0) { - res.append(minutes).append("m "); - } - res.append(seconds).append('s'); - - return res.toString(); - } - } - /** * Represents a configuration error. */ @@ -183,43 +131,8 @@ public class Report implements Iterable { } } - - /** - * Calculate a summary of violations per rule. - * - * @return a Map summarizing the Report: String (rule name) -> Integer (count - * of violations) - */ - public Map getSummary() { - Map summary = new HashMap<>(); - for (RuleViolation rv : violations) { - String name = rv.getRule().getName(); - if (!summary.containsKey(name)) { - summary.put(name, 0); - } - Integer count = summary.get(name); - summary.put(name, count + 1); - } - return summary; - } - - /** - * Registers a report listener - * - * @param listener - * the listener - */ - public void addListener(ThreadSafeReportListener listener) { - listeners.add(listener); - } - - public List getSuppressedRuleViolations() { - return suppressedRuleViolations; - } - /** * Represents a violation, that has been suppressed. - * TODO this should implement RuleViolation */ public static class SuppressedViolation { private final RuleViolation rv; @@ -252,16 +165,19 @@ public class Report implements Iterable { } } - - public void addSuppressedViolation(SuppressedViolation sv) { - suppressedRuleViolations.add(sv); + /** + * Registers a report listener + * + * @param listener the listener + */ + public void addListener(ThreadSafeReportListener listener) { + listeners.add(listener); } /** * Adds a new rule violation to the report and notify the listeners. * - * @param violation - * the violation to add + * @param violation the violation to add */ public void addRuleViolation(RuleViolation violation) { int index = Collections.binarySearch(violations, violation, RuleViolationComparator.INSTANCE); @@ -271,16 +187,19 @@ public class Report implements Iterable { } } + /** + * Adds a new suppressed violation. + */ + public void addSuppressedViolation(SuppressedViolation sv) { + suppressedRuleViolations.add(sv); + } + /** * Adds a new configuration error to the report. * - * @param error - * the error to add + * @param error the error to add */ public void addConfigError(ConfigurationError error) { - if (configErrors == null) { - configErrors = new ArrayList<>(); - } configErrors.add(error); } @@ -291,9 +210,6 @@ public class Report implements Iterable { * the error to add */ public void addError(ProcessingError error) { - if (errors == null) { - errors = new ArrayList<>(); - } errors.add(error); } @@ -307,99 +223,50 @@ public class Report implements Iterable { * @see AbstractAccumulatingRenderer */ public void merge(Report r) { - Iterator i = r.errors(); - while (i.hasNext()) { - addError(i.next()); - } - Iterator ce = r.configErrors(); - while (ce.hasNext()) { - addConfigError(ce.next()); - } - for (RuleViolation violation : r) { + errors.addAll(r.errors); + configErrors.addAll(r.configErrors); + suppressedRuleViolations.addAll(r.suppressedRuleViolations); + + for (RuleViolation violation : r.getViolations()) { int index = Collections.binarySearch(violations, violation, RuleViolationComparator.INSTANCE); violations.add(index < 0 ? -index - 1 : index, violation); } - suppressedRuleViolations.addAll(r.getSuppressedRuleViolations()); } - public boolean isEmpty() { - return !violations.iterator().hasNext() && !hasErrors(); + + /** + * Returns an unmodifiable list of violations that were suppressed. + */ + public List getSuppressedRuleViolations() { + return Collections.unmodifiableList(suppressedRuleViolations); } /** - * Checks whether any processing errors have been reported. - * - * @return true if there were any processing errors, - * false otherwise + * Returns an unmodifiable list of violations that have been + * recorded until now. None of those violations were suppressed. */ - public boolean hasErrors() { - return errors != null && !errors.isEmpty(); + public List getViolations() { + return Collections.unmodifiableList(violations); } + /** - * Checks whether any configuration errors have been reported. - * - * @return true if there were any configuration errors, - * false otherwise + * Returns an unmodifiable list of processing errors that have been + * recorded until now. */ - public boolean hasConfigErrors() { - return configErrors != null && !configErrors.isEmpty(); + public List getProcessingErrors() { + return Collections.unmodifiableList(errors); } - @Override - public Iterator iterator() { - return violations.iterator(); - } /** - * Returns an iterator of the reported processing errors. - * - * @return the iterator + * Returns an unmodifiable list of configuration errors that have + * been recorded until now. */ - public Iterator errors() { - return errors == null ? Collections.emptyIterator() : errors.iterator(); + public List getConfigErrors() { + return Collections.unmodifiableList(configErrors); } - /** - * Returns an iterator of the reported configuration errors. - * - * @return the iterator - */ - public Iterator configErrors() { - return configErrors == null ? Collections.emptyIterator() : configErrors.iterator(); - } - - /** - * The number of violations. - * - * @return number of violations. - */ - public int size() { - return violations.size(); - } - - /** - * Mark the start time of the report. This is used to get the elapsed time - * in the end. - * - * @see #getElapsedTimeInMillis() - */ - public void start() { - start = System.currentTimeMillis(); - } - - /** - * Mark the end time of the report. This is ued to get the elapsed time. - * - * @see #getElapsedTimeInMillis() - */ - public void end() { - end = System.currentTimeMillis(); - } - - public long getElapsedTimeInMillis() { - return end - start; - } public List getListeners() { return listeners; diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/ant/internal/PMDTaskImpl.java b/pmd-core/src/main/java/net/sourceforge/pmd/ant/internal/PMDTaskImpl.java index 8ca5bd6e17..f60d1093bf 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/ant/internal/PMDTaskImpl.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/ant/internal/PMDTaskImpl.java @@ -170,7 +170,7 @@ public class PMDTaskImpl { @Override public void renderFileReport(Report r) { - int size = r.size(); + int size = r.getViolations().size(); if (size > 0) { reportSize.addAndGet(size); } diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/renderers/AbstractIncrementingRenderer.java b/pmd-core/src/main/java/net/sourceforge/pmd/renderers/AbstractIncrementingRenderer.java index 1580e8eefb..332d5accb0 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/renderers/AbstractIncrementingRenderer.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/renderers/AbstractIncrementingRenderer.java @@ -57,19 +57,15 @@ public abstract class AbstractIncrementingRenderer extends AbstractRenderer { @Override public void renderFileReport(Report report) throws IOException { - Iterator violations = report.iterator(); + Iterator violations = report.getViolations().iterator(); if (violations.hasNext()) { renderFileViolations(violations); getWriter().flush(); } - for (Iterator i = report.errors(); i.hasNext();) { - errors.add(i.next()); - } + errors.addAll(report.getProcessingErrors()); - for (Iterator i = report.configErrors(); i.hasNext();) { - configErrors.add(i.next()); - } + configErrors.addAll(report.getConfigErrors()); if (showSuppressedViolations) { suppressed.addAll(report.getSuppressedRuleViolations()); diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/renderers/SummaryHTMLRenderer.java b/pmd-core/src/main/java/net/sourceforge/pmd/renderers/SummaryHTMLRenderer.java index fb6d8cf272..8f4881669f 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/renderers/SummaryHTMLRenderer.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/renderers/SummaryHTMLRenderer.java @@ -5,9 +5,15 @@ package net.sourceforge.pmd.renderers; import java.io.IOException; +import java.util.HashMap; import java.util.Map; +import java.util.Map.Entry; + +import org.apache.commons.lang3.mutable.MutableInt; import net.sourceforge.pmd.PMD; +import net.sourceforge.pmd.Report; +import net.sourceforge.pmd.RuleViolation; /** * Renderer to a summarized HTML format. @@ -59,8 +65,8 @@ public class SummaryHTMLRenderer extends AbstractAccumulatingRenderer { writer.write("

Summary

" + PMD.EOL); writer.write("" + PMD.EOL); writer.write("" + PMD.EOL); - Map summary = report.getSummary(); - for (Map.Entry entry : summary.entrySet()) { + Map summary = getSummary(report); + for (Entry entry : summary.entrySet()) { String ruleName = entry.getKey(); writer.write("
Rule nameNumber of violations
"); writer.write(ruleName); @@ -70,4 +76,19 @@ public class SummaryHTMLRenderer extends AbstractAccumulatingRenderer { } writer.write("
" + PMD.EOL); } + + private static Map getSummary(Report report) { + Map summary = new HashMap<>(); + for (RuleViolation rv : report.getViolations()) { + String name = rv.getRule().getName(); + MutableInt count = summary.get(name); + if (count == null) { + count = new MutableInt(0); + summary.put(name, count); + } + count.increment(); + } + return summary; + } + } diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/renderers/TextColorRenderer.java b/pmd-core/src/main/java/net/sourceforge/pmd/renderers/TextColorRenderer.java index 31472045cb..0e90c20951 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/renderers/TextColorRenderer.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/renderers/TextColorRenderer.java @@ -12,13 +12,14 @@ import java.io.Reader; import java.nio.charset.Charset; import java.nio.file.Files; import java.util.HashMap; -import java.util.Iterator; import java.util.Map; import org.apache.commons.lang3.StringUtils; import net.sourceforge.pmd.PMD; import net.sourceforge.pmd.Report; +import net.sourceforge.pmd.Report.ConfigurationError; +import net.sourceforge.pmd.Report.ProcessingError; import net.sourceforge.pmd.RuleViolation; import net.sourceforge.pmd.properties.PropertyDescriptor; import net.sourceforge.pmd.properties.PropertyFactory; @@ -126,10 +127,9 @@ public class TextColorRenderer extends AbstractAccumulatingRenderer { int numberOfErrors = 0; int numberOfWarnings = 0; - for (Iterator i = report.iterator(); i.hasNext();) { + for (RuleViolation rv : report.getViolations()) { buf.setLength(0); numberOfWarnings++; - RuleViolation rv = i.next(); String nextFile = determineFileName(rv.getFilename()); if (!nextFile.equals(lastFile)) { lastFile = nextFile; @@ -155,10 +155,9 @@ public class TextColorRenderer extends AbstractAccumulatingRenderer { writer.write(buf.toString()); } - for (Iterator i = report.errors(); i.hasNext();) { + for (ProcessingError error : report.getProcessingErrors()) { buf.setLength(0); numberOfErrors++; - Report.ProcessingError error = i.next(); String nextFile = determineFileName(error.getFile()); if (!nextFile.equals(lastFile)) { lastFile = nextFile; @@ -170,10 +169,9 @@ public class TextColorRenderer extends AbstractAccumulatingRenderer { writer.write(buf.toString()); } - for (Iterator i = report.configErrors(); i.hasNext();) { + for (ConfigurationError error : report.getConfigErrors()) { buf.setLength(0); numberOfErrors++; - Report.ConfigurationError error = i.next(); buf.append(this.redBold + "*" + this.colorReset + " rule: " + this.whiteBold + error.rule().getName() + this.colorReset + PMD.EOL); buf.append(this.green + " err: " + this.cyan + error.issue() + this.colorReset + PMD.EOL + PMD.EOL); @@ -197,7 +195,7 @@ public class TextColorRenderer extends AbstractAccumulatingRenderer { */ private static Map getCountSummary(Report report) { Map summary = new HashMap<>(); - for (RuleViolation rv : report) { + for (RuleViolation rv : report.getViolations()) { String key = keyFor(rv); if (key.isEmpty()) { continue; diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/renderers/YAHTMLRenderer.java b/pmd-core/src/main/java/net/sourceforge/pmd/renderers/YAHTMLRenderer.java index cb1d4ed34c..1e2309ea38 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/renderers/YAHTMLRenderer.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/renderers/YAHTMLRenderer.java @@ -9,7 +9,6 @@ import java.io.IOException; import java.io.PrintWriter; import java.nio.charset.StandardCharsets; import java.nio.file.Files; -import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.SortedMap; @@ -92,9 +91,8 @@ public class YAHTMLRenderer extends AbstractAccumulatingRenderer { public void end() throws IOException { String outputDir = getProperty(OUTPUT_DIR); - Iterator violations = report.iterator(); - while (violations.hasNext()) { - addViolation(violations.next()); + for (RuleViolation ruleViolation : report.getViolations()) { + addViolation(ruleViolation); } renderIndex(outputDir); diff --git a/pmd-core/src/test/java/net/sourceforge/pmd/AbstractRuleTest.java b/pmd-core/src/test/java/net/sourceforge/pmd/AbstractRuleTest.java index 5ee922610d..39e27560e2 100644 --- a/pmd-core/src/test/java/net/sourceforge/pmd/AbstractRuleTest.java +++ b/pmd-core/src/test/java/net/sourceforge/pmd/AbstractRuleTest.java @@ -112,7 +112,7 @@ public class AbstractRuleTest { s.setCoords(5, 1, 6, 1); s.setImage("TestImage"); r.addViolation(ctx, s); - RuleViolation rv = ctx.getReport().iterator().next(); + RuleViolation rv = ctx.getReport().getViolations().get(0); assertEquals("Message foo 10 ${noSuchProperty}", rv.getDescription()); } @@ -127,7 +127,7 @@ public class AbstractRuleTest { n.setCoords(5, 1, 6, 1); DefaultRuleViolationFactory.defaultInstance().addViolation(ctx, r, n, "specificdescription", new Object[0]); - assertTrue(ctx.getReport().isEmpty()); + assertTrue(ctx.getReport().getViolations().isEmpty()); } @Test diff --git a/pmd-core/src/test/java/net/sourceforge/pmd/ReadableDurationTest.java b/pmd-core/src/test/java/net/sourceforge/pmd/ReadableDurationTest.java deleted file mode 100644 index 73de53d6ad..0000000000 --- a/pmd-core/src/test/java/net/sourceforge/pmd/ReadableDurationTest.java +++ /dev/null @@ -1,44 +0,0 @@ -/** - * BSD-style license; for more info see http://pmd.sourceforge.net/license.html - */ - -package net.sourceforge.pmd; - -import static org.junit.Assert.assertEquals; - -import java.util.Arrays; -import java.util.Collection; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; -import org.junit.runners.Parameterized.Parameters; - -import junit.framework.JUnit4TestAdapter; - -@RunWith(Parameterized.class) -public class ReadableDurationTest { - - private Integer value; - private String expected; - - public ReadableDurationTest(String expected, Integer value) { - this.value = value; - this.expected = expected; - } - - @Parameters - public static Collection data() { - return Arrays.asList(new Object[][] { { "0s", 35 }, { "25s", (25 * 1000) }, { "5m 0s", (60 * 1000 * 5) }, - { "2h 0m 0s", (60 * 1000 * 120) }, }); - } - - @Test - public void test() { - assertEquals(expected, new Report.ReadableDuration(value).getTime()); - } - - public static junit.framework.Test suite() { - return new JUnit4TestAdapter(ReadableDurationTest.class); - } -} diff --git a/pmd-core/src/test/java/net/sourceforge/pmd/ReportTest.java b/pmd-core/src/test/java/net/sourceforge/pmd/ReportTest.java index 2e22ab84e9..57a845fc8c 100644 --- a/pmd-core/src/test/java/net/sourceforge/pmd/ReportTest.java +++ b/pmd-core/src/test/java/net/sourceforge/pmd/ReportTest.java @@ -14,8 +14,6 @@ import java.io.StringWriter; import java.nio.charset.Charset; import java.nio.file.Files; import java.nio.file.Path; -import java.util.Iterator; -import java.util.Map; import org.apache.commons.io.IOUtils; import org.junit.Test; @@ -85,26 +83,6 @@ public class ReportTest implements ThreadSafeReportListener { assertTrue(violationSemaphore); } - @Test - public void testSummary() { - Report r = new Report(); - RuleContext ctx = new RuleContext(); - ctx.setSourceCodeFile(new File("foo1")); - Node s = getNode(5, 5); - Rule rule = new MockRule("name", "desc", "msg", "rulesetname"); - r.addRuleViolation(new ParametricRuleViolation<>(rule, ctx, s, rule.getMessage())); - ctx.setSourceCodeFile(new File("foo2")); - Rule mr = new MockRule("rule1", "rule1", "msg", "rulesetname"); - Node s1 = getNode(20, 5); - Node s2 = getNode(30, 5); - r.addRuleViolation(new ParametricRuleViolation<>(mr, ctx, s1, mr.getMessage())); - r.addRuleViolation(new ParametricRuleViolation<>(mr, ctx, s2, mr.getMessage())); - Map summary = r.getSummary(); - assertEquals(summary.keySet().size(), 2); - assertTrue(summary.containsValue(1)); - assertTrue(summary.containsValue(2)); - } - @Test public void testIterator() { Report r = new Report(); @@ -115,13 +93,7 @@ public class ReportTest implements ThreadSafeReportListener { Node node2 = getNode(5, 6, true); r.addRuleViolation(new ParametricRuleViolation<>(rule, ctx, node2, rule.getMessage())); - Iterator violations = r.iterator(); - int violationCount = 0; - while (violations.hasNext()) { - violations.next(); - violationCount++; - } - assertEquals(2, violationCount); + assertEquals(2, r.getViolations().size()); } private static Node getNode(int line, int column) { diff --git a/pmd-core/src/test/java/net/sourceforge/pmd/RuleContextTest.java b/pmd-core/src/test/java/net/sourceforge/pmd/RuleContextTest.java index 792a365a21..279d60c66b 100644 --- a/pmd-core/src/test/java/net/sourceforge/pmd/RuleContextTest.java +++ b/pmd-core/src/test/java/net/sourceforge/pmd/RuleContextTest.java @@ -22,7 +22,7 @@ public class RuleContextTest { @Test public void testReport() { RuleContext ctx = new RuleContext(); - assertEquals(0, ctx.getReport().size()); + assertEquals(0, ctx.getReport().getViolations().size()); Report r = new Report(); ctx.setReport(r); Report r2 = ctx.getReport(); diff --git a/pmd-core/src/test/java/net/sourceforge/pmd/RuleSetTest.java b/pmd-core/src/test/java/net/sourceforge/pmd/RuleSetTest.java index 690e56914b..c66405e0cf 100644 --- a/pmd-core/src/test/java/net/sourceforge/pmd/RuleSetTest.java +++ b/pmd-core/src/test/java/net/sourceforge/pmd/RuleSetTest.java @@ -29,7 +29,6 @@ import org.junit.Test; import net.sourceforge.pmd.Report.ProcessingError; import net.sourceforge.pmd.RuleSet.RuleSetBuilder; -import net.sourceforge.pmd.internal.util.IteratorUtil; import net.sourceforge.pmd.lang.Dummy2LanguageModule; import net.sourceforge.pmd.lang.DummyLanguageModule; import net.sourceforge.pmd.lang.LanguageRegistry; @@ -423,7 +422,7 @@ public class RuleSetTest { ctx.setSourceCodeFile(file); ctx.setLanguageVersion(LanguageRegistry.getLanguage(DummyLanguageModule.NAME).getDefaultVersion()); ruleSets.apply(makeCompilationUnits(), ctx); - assertEquals("Violations", 2, r.size()); + assertEquals("Violations", 2, r.getViolations().size()); // One violation ruleSet1 = createRuleSetBuilder("RuleSet1") @@ -436,7 +435,7 @@ public class RuleSetTest { r = new Report(); ctx.setReport(r); ruleSets.apply(makeCompilationUnits(), ctx); - assertEquals("Violations", 1, r.size()); + assertEquals("Violations", 1, r.getViolations().size()); } @Test @@ -463,19 +462,14 @@ public class RuleSetTest { context.setReport(new Report()); new RuleSets(ruleset).apply(makeCompilationUnits(), context); - assertEquals("Invalid number of Violations Reported", size, context.getReport().size()); - - Iterator violations = context.getReport().iterator(); - while (violations.hasNext()) { - RuleViolation violation = violations.next(); + assertEquals("Invalid number of Violations Reported", size, context.getReport().getViolations().size()); + for (RuleViolation violation : context.getReport().getViolations()) { reportedValues.add(violation); assertTrue("Unexpected Violation Returned: " + violation, values.contains(violation)); } - Iterator expected = values.iterator(); - while (expected.hasNext()) { - RuleViolation violation = expected.next(); + for (RuleViolation violation : values) { assertTrue("Expected Violation not Returned: " + violation, reportedValues.contains(violation)); } } @@ -506,8 +500,8 @@ public class RuleSetTest { context.setIgnoreExceptions(true); // the default ruleset.apply(makeCompilationUnits(), context); - assertTrue("Report should have processing errors", context.getReport().hasErrors()); - List errors = IteratorUtil.toList(context.getReport().errors()); + List errors = context.getReport().getProcessingErrors(); + assertTrue("Report should have processing errors", !errors.isEmpty()); assertEquals("Errors expected", 1, errors.size()); assertEquals("Wrong error message", "RuntimeException: Test exception while applying rule", errors.get(0).getMsg()); assertTrue("Should be a RuntimeException", errors.get(0).getError() instanceof RuntimeException); @@ -551,13 +545,13 @@ public class RuleSetTest { context.setIgnoreExceptions(true); // the default ruleset.apply(makeCompilationUnits(), context); - assertTrue("Report should have processing errors", context.getReport().hasErrors()); - List errors = IteratorUtil.toList(context.getReport().errors()); + List errors = context.getReport().getProcessingErrors(); + assertFalse("Report should have processing errors", errors.isEmpty()); assertEquals("Errors expected", 1, errors.size()); assertEquals("Wrong error message", "RuntimeException: Test exception while applying rule", errors.get(0).getMsg()); assertTrue("Should be a RuntimeException", errors.get(0).getError() instanceof RuntimeException); - assertEquals("There should be a violation", 1, context.getReport().size()); + assertEquals("There should be a violation", 1, context.getReport().getViolations().size()); } @Test @@ -593,13 +587,12 @@ public class RuleSetTest { RuleSets rulesets = new RuleSets(ruleset); rulesets.apply(makeCompilationUnits(), context); - assertTrue("Report should have processing errors", context.getReport().hasErrors()); - List errors = IteratorUtil.toList(context.getReport().errors()); + List errors = context.getReport().getProcessingErrors(); assertEquals("Errors expected", 1, errors.size()); assertEquals("Wrong error message", "RuntimeException: Test exception while applying rule", errors.get(0).getMsg()); assertTrue("Should be a RuntimeException", errors.get(0).getError() instanceof RuntimeException); - assertEquals("There should be a violation", 1, context.getReport().size()); + assertEquals("There should be a violation", 1, context.getReport().getViolations().size()); } } diff --git a/pmd-core/src/test/java/net/sourceforge/pmd/lang/rule/DefaultRuleViolationFactoryTest.java b/pmd-core/src/test/java/net/sourceforge/pmd/lang/rule/DefaultRuleViolationFactoryTest.java index e57a709484..baaed1c018 100644 --- a/pmd-core/src/test/java/net/sourceforge/pmd/lang/rule/DefaultRuleViolationFactoryTest.java +++ b/pmd-core/src/test/java/net/sourceforge/pmd/lang/rule/DefaultRuleViolationFactoryTest.java @@ -33,7 +33,7 @@ public class DefaultRuleViolationFactoryTest { public void testMessage() { factory.addViolation(ruleContext, new TestRule(), null, "message with \"'{'\"", null); - RuleViolation violation = ruleContext.getReport().iterator().next(); + RuleViolation violation = ruleContext.getReport().getViolations().get(0); Assert.assertEquals("message with \"{\"", violation.getDescription()); } @@ -41,7 +41,7 @@ public class DefaultRuleViolationFactoryTest { public void testMessageArgs() { factory.addViolation(ruleContext, new TestRule(), null, "message with 1 argument: \"{0}\"", new Object[] {"testarg1"}); - RuleViolation violation = ruleContext.getReport().iterator().next(); + RuleViolation violation = ruleContext.getReport().getViolations().get(0); Assert.assertEquals("message with 1 argument: \"testarg1\"", violation.getDescription()); } } diff --git a/pmd-core/src/test/java/net/sourceforge/pmd/lang/rule/XPathRuleTest.java b/pmd-core/src/test/java/net/sourceforge/pmd/lang/rule/XPathRuleTest.java index 84c5085152..9cfc0b9433 100644 --- a/pmd-core/src/test/java/net/sourceforge/pmd/lang/rule/XPathRuleTest.java +++ b/pmd-core/src/test/java/net/sourceforge/pmd/lang/rule/XPathRuleTest.java @@ -46,26 +46,26 @@ public class XPathRuleTest { ctx.setLanguageVersion(LanguageRegistry.getLanguage(DummyLanguageModule.NAME).getDefaultVersion()); DummyNode firstNode = newNodeWithList(); xpr.apply(firstNode, ctx); - assertEquals(1, ctx.getReport().size()); + assertEquals(1, ctx.getReport().getViolations().size()); String log = loggingRule.getLog(); assertThat(log, Matchers.containsString("Use of deprecated attribute 'dummyNode/@List' by XPath rule 'TestRuleWithListAccess'")); loggingRule.clear(); xpr.apply(newNodeWithList(), ctx); // with another node - assertEquals(2, ctx.getReport().size()); + assertEquals(2, ctx.getReport().getViolations().size()); assertEquals("", loggingRule.getLog()); // no addtional warnings // with another rule forked from the same one (in multithreaded processor) xpr.deepCopy().apply(newNodeWithList(), ctx); - assertEquals(3, ctx.getReport().size()); + assertEquals(3, ctx.getReport().getViolations().size()); assertEquals("", loggingRule.getLog()); // no addtional warnings // with another rule on the same node, new warnings XPathRule otherRule = makeRuleWithList("OtherTestRuleWithListAccess"); otherRule.setRuleSetName("rset.xml"); otherRule.apply(firstNode, ctx); - assertEquals(4, ctx.getReport().size()); + assertEquals(4, ctx.getReport().getViolations().size()); log = loggingRule.getLog(); assertThat(log, Matchers.containsString("Use of deprecated attribute 'dummyNode/@List' by XPath rule 'OtherTestRuleWithListAccess' (in ruleset 'rset.xml')")); } @@ -96,7 +96,7 @@ public class XPathRuleTest { ctx.setLanguageVersion(LanguageRegistry.getLanguage(DummyLanguageModule.NAME).getDefaultVersion()); DummyNode firstNode = newNode(); xpr.apply(firstNode, ctx); - assertEquals(1, ctx.getReport().size()); + assertEquals(1, ctx.getReport().getViolations().size()); String log = loggingRule.getLog(); assertThat(log, Matchers.containsString("Use of deprecated attribute 'dummyNode/@Size' by XPath rule 'SomeRule'")); @@ -107,14 +107,14 @@ public class XPathRuleTest { // with another node xpr.apply(newNode(), ctx); - assertEquals(2, ctx.getReport().size()); + assertEquals(2, ctx.getReport().getViolations().size()); assertEquals("", loggingRule.getLog()); // no additional warnings // with another rule forked from the same one (in multithreaded processor) xpr.deepCopy().apply(newNode(), ctx); - assertEquals(3, ctx.getReport().size()); + assertEquals(3, ctx.getReport().getViolations().size()); assertEquals("", loggingRule.getLog()); // no additional warnings @@ -122,7 +122,7 @@ public class XPathRuleTest { XPathRule otherRule = makeRule(version, "OtherRule"); otherRule.setRuleSetName("rset.xml"); otherRule.apply(firstNode, ctx); - assertEquals(4, ctx.getReport().size()); + assertEquals(4, ctx.getReport().getViolations().size()); log = loggingRule.getLog(); assertThat(log, Matchers.containsString("Use of deprecated attribute 'dummyNode/@Size' by XPath rule 'OtherRule' (in ruleset 'rset.xml')")); diff --git a/pmd-core/src/test/java/net/sourceforge/pmd/processor/MultiThreadProcessorTest.java b/pmd-core/src/test/java/net/sourceforge/pmd/processor/MultiThreadProcessorTest.java index 67cf33e0ac..1739faeaf8 100644 --- a/pmd-core/src/test/java/net/sourceforge/pmd/processor/MultiThreadProcessorTest.java +++ b/pmd-core/src/test/java/net/sourceforge/pmd/processor/MultiThreadProcessorTest.java @@ -63,7 +63,7 @@ public class MultiThreadProcessorTest { processor.processFiles(ruleSetFactory, files, ctx, Collections.singletonList(renderer)); renderer.end(); - final Iterator configErrors = renderer.getReport().configErrors(); + final Iterator configErrors = renderer.getReport().getConfigErrors().iterator(); final ConfigurationError error = configErrors.next(); Assert.assertEquals("Dysfunctional rule message not present", diff --git a/pmd-java/src/test/java/net/sourceforge/pmd/ExcludeLinesTest.java b/pmd-java/src/test/java/net/sourceforge/pmd/ExcludeLinesTest.java index 5704ef0951..4ed808ee14 100644 --- a/pmd-java/src/test/java/net/sourceforge/pmd/ExcludeLinesTest.java +++ b/pmd-java/src/test/java/net/sourceforge/pmd/ExcludeLinesTest.java @@ -43,7 +43,7 @@ public class ExcludeLinesTest extends RuleTst { ctx.setLanguageVersion(LanguageRegistry.getLanguage(JavaLanguageModule.NAME).getDefaultVersion()); RuleSet rules = RulesetsFactoryUtils.defaultFactory().createSingleRuleRuleSet(rule); p.getSourceCodeProcessor().processSourceCode(new StringReader(TEST3), new RuleSets(rules), ctx); - assertTrue(r.isEmpty()); + assertTrue(r.getViolations().isEmpty()); assertEquals(r.getSuppressedRuleViolations().size(), 1); } diff --git a/pmd-java/src/test/java/net/sourceforge/pmd/ReportTest.java b/pmd-java/src/test/java/net/sourceforge/pmd/ReportTest.java index 383d64cbde..1327ed49d4 100644 --- a/pmd-java/src/test/java/net/sourceforge/pmd/ReportTest.java +++ b/pmd-java/src/test/java/net/sourceforge/pmd/ReportTest.java @@ -23,7 +23,7 @@ public class ReportTest extends RuleTst { public void testBasic() { Report r = new Report(); runTestFromString(TEST1, new FooRule(), r, defaultLanguage); - assertFalse(r.isEmpty()); + assertFalse(r.getViolations().isEmpty()); } @Test @@ -32,7 +32,7 @@ public class ReportTest extends RuleTst { Rule rule = new FooRule(); rule.setProperty(Rule.VIOLATION_SUPPRESS_REGEX_DESCRIPTOR, ".*No Foo.*"); runTestFromString(TEST1, rule, rpt, defaultLanguage); - assertTrue(rpt.isEmpty()); + assertTrue(rpt.getViolations().isEmpty()); assertEquals(1, rpt.getSuppressedRuleViolations().size()); } @@ -42,7 +42,7 @@ public class ReportTest extends RuleTst { Rule rule = new FooRule(); rule.setProperty(Rule.VIOLATION_SUPPRESS_XPATH_DESCRIPTOR, ".[@SimpleName = 'Foo']"); runTestFromString(TEST1, rule, rpt, defaultLanguage); - assertTrue(rpt.isEmpty()); + assertTrue(rpt.getViolations().isEmpty()); assertEquals(1, rpt.getSuppressedRuleViolations().size()); } @@ -51,7 +51,7 @@ public class ReportTest extends RuleTst { Report rpt = new Report(); runTestFromString(TEST2, new FooRule(), rpt, LanguageRegistry.getLanguage(JavaLanguageModule.NAME).getVersion("1.5")); - assertTrue(rpt.isEmpty()); + assertTrue(rpt.getViolations().isEmpty()); assertEquals(1, rpt.getSuppressedRuleViolations().size()); } @@ -60,7 +60,7 @@ public class ReportTest extends RuleTst { Report rpt = new Report(); runTestFromString(TEST2_FULL, new FooRule(), rpt, LanguageRegistry.getLanguage(JavaLanguageModule.NAME).getVersion("1.5")); - assertTrue(rpt.isEmpty()); + assertTrue(rpt.getViolations().isEmpty()); assertEquals(1, rpt.getSuppressedRuleViolations().size()); } @@ -68,7 +68,7 @@ public class ReportTest extends RuleTst { public void testExclusionsInReportWithNOPMD() { Report rpt = new Report(); runTestFromString(TEST3, new FooRule(), rpt, defaultLanguage); - assertTrue(rpt.isEmpty()); + assertTrue(rpt.getViolations().isEmpty()); assertEquals(1, rpt.getSuppressedRuleViolations().size()); } diff --git a/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/SuppressWarningsTest.java b/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/SuppressWarningsTest.java index 6506f992b0..a9b60557f5 100644 --- a/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/SuppressWarningsTest.java +++ b/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/SuppressWarningsTest.java @@ -42,10 +42,10 @@ public class SuppressWarningsTest extends RuleTst { Report rpt = new Report(); runTestFromString(TEST1, new FooRule(), rpt, LanguageRegistry.getLanguage(JavaLanguageModule.NAME).getVersion("1.5")); - assertEquals(0, rpt.size()); + assertEquals(0, rpt.getViolations().size()); runTestFromString(TEST2, new FooRule(), rpt, LanguageRegistry.getLanguage(JavaLanguageModule.NAME).getVersion("1.5")); - assertEquals(0, rpt.size()); + assertEquals(0, rpt.getViolations().size()); } @Test @@ -53,7 +53,7 @@ public class SuppressWarningsTest extends RuleTst { Report rpt = new Report(); runTestFromString(TEST3, new FooRule(), rpt, LanguageRegistry.getLanguage(JavaLanguageModule.NAME).getVersion("1.5")); - assertEquals(0, rpt.size()); + assertEquals(0, rpt.getViolations().size()); } @Test @@ -61,7 +61,7 @@ public class SuppressWarningsTest extends RuleTst { Report rpt = new Report(); runTestFromString(TEST4, new FooRule(), rpt, LanguageRegistry.getLanguage(JavaLanguageModule.NAME).getVersion("1.5")); - assertEquals(1, rpt.size()); + assertEquals(1, rpt.getViolations().size()); } @Test @@ -69,7 +69,7 @@ public class SuppressWarningsTest extends RuleTst { Report rpt = new Report(); runTestFromString(TEST5, new FooRule(), rpt, LanguageRegistry.getLanguage(JavaLanguageModule.NAME).getVersion("1.5")); - assertEquals(0, rpt.size()); + assertEquals(0, rpt.getViolations().size()); } @Test @@ -77,7 +77,7 @@ public class SuppressWarningsTest extends RuleTst { Report rpt = new Report(); runTestFromString(TEST6, new FooRule(), rpt, LanguageRegistry.getLanguage(JavaLanguageModule.NAME).getVersion("1.5")); - assertEquals(1, rpt.size()); + assertEquals(1, rpt.getViolations().size()); } @Test @@ -85,7 +85,7 @@ public class SuppressWarningsTest extends RuleTst { Report rpt = new Report(); runTestFromString(TEST7, new FooRule(), rpt, LanguageRegistry.getLanguage(JavaLanguageModule.NAME).getVersion("1.5")); - assertEquals(1, rpt.size()); + assertEquals(1, rpt.getViolations().size()); } @Test @@ -93,7 +93,7 @@ public class SuppressWarningsTest extends RuleTst { Report rpt = new Report(); runTestFromString(TEST8, new FooRule(), rpt, LanguageRegistry.getLanguage(JavaLanguageModule.NAME).getVersion("1.5")); - assertEquals(1, rpt.size()); + assertEquals(1, rpt.getViolations().size()); } @Test @@ -101,7 +101,7 @@ public class SuppressWarningsTest extends RuleTst { Report rpt = new Report(); runTestFromString(TEST9, new FooRule(), rpt, LanguageRegistry.getLanguage(JavaLanguageModule.NAME).getVersion("1.5")); - assertEquals(1, rpt.size()); + assertEquals(1, rpt.getViolations().size()); } @Test @@ -109,7 +109,7 @@ public class SuppressWarningsTest extends RuleTst { Report rpt = new Report(); runTestFromString(TEST9_VALUE1, new FooRule(), rpt, LanguageRegistry.getLanguage(JavaLanguageModule.NAME).getVersion("1.5")); - assertEquals(1, rpt.size()); + assertEquals(1, rpt.getViolations().size()); } @Test @@ -117,7 +117,7 @@ public class SuppressWarningsTest extends RuleTst { Report rpt = new Report(); runTestFromString(TEST9_VALUE2, new FooRule(), rpt, LanguageRegistry.getLanguage(JavaLanguageModule.NAME).getVersion("1.5")); - assertEquals(1, rpt.size()); + assertEquals(1, rpt.getViolations().size()); } @Test @@ -125,7 +125,7 @@ public class SuppressWarningsTest extends RuleTst { Report rpt = new Report(); runTestFromString(TEST9_VALUE3, new FooRule(), rpt, LanguageRegistry.getLanguage(JavaLanguageModule.NAME).getVersion("1.5")); - assertEquals(1, rpt.size()); + assertEquals(1, rpt.getViolations().size()); } @Test @@ -133,7 +133,7 @@ public class SuppressWarningsTest extends RuleTst { Report rpt = new Report(); runTestFromString(TEST9_MULTIPLE_VALUES_1, new FooRule(), rpt, LanguageRegistry.getLanguage(JavaLanguageModule.NAME).getVersion("1.5")); - assertEquals(0, rpt.size()); + assertEquals(0, rpt.getViolations().size()); } @Test @@ -141,7 +141,7 @@ public class SuppressWarningsTest extends RuleTst { Report rpt = new Report(); runTestFromString(TEST9_MULTIPLE_VALUES_2, new FooRule(), rpt, LanguageRegistry.getLanguage(JavaLanguageModule.NAME).getVersion("1.5")); - assertEquals(0, rpt.size()); + assertEquals(0, rpt.getViolations().size()); } @Test @@ -149,7 +149,7 @@ public class SuppressWarningsTest extends RuleTst { Report rpt = new Report(); runTestFromString(TEST10, new FooRule(), rpt, LanguageRegistry.getLanguage(JavaLanguageModule.NAME).getVersion("1.5")); - assertEquals(2, rpt.size()); + assertEquals(2, rpt.getViolations().size()); } @Test @@ -157,7 +157,7 @@ public class SuppressWarningsTest extends RuleTst { Report rpt = new Report(); runTestFromString(TEST11, new FooRule(), rpt, LanguageRegistry.getLanguage(JavaLanguageModule.NAME).getVersion("1.5")); - assertEquals(2, rpt.size()); + assertEquals(2, rpt.getViolations().size()); } @Test @@ -165,7 +165,7 @@ public class SuppressWarningsTest extends RuleTst { Report rpt = new Report(); runTestFromString(TEST12, new FooRule(), rpt, LanguageRegistry.getLanguage(JavaLanguageModule.NAME).getVersion("1.5")); - assertEquals(0, rpt.size()); + assertEquals(0, rpt.getViolations().size()); } @Test @@ -173,7 +173,7 @@ public class SuppressWarningsTest extends RuleTst { Report rpt = new Report(); runTestFromString(TEST13, new BarRule(), rpt, LanguageRegistry.getLanguage(JavaLanguageModule.NAME).getVersion("1.5")); - assertEquals(0, rpt.size()); + assertEquals(0, rpt.getViolations().size()); } private static final String TEST1 = "@SuppressWarnings(\"PMD\")\npublic class Foo {}"; diff --git a/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/metrics/xpath/XPathMetricFunctionTest.java b/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/metrics/xpath/XPathMetricFunctionTest.java index 2dc75f74cc..62b9432130 100644 --- a/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/metrics/xpath/XPathMetricFunctionTest.java +++ b/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/metrics/xpath/XPathMetricFunctionTest.java @@ -59,7 +59,7 @@ public class XPathMetricFunctionTest { ctx.setIgnoreExceptions(false); // for test, we want immediate exceptions thrown and not collect them RuleSet rules = RulesetsFactoryUtils.defaultFactory().createSingleRuleRuleSet(rule); p.getSourceCodeProcessor().processSourceCode(new StringReader(code), new RuleSets(rules), ctx); - return report.iterator(); + return report.getViolations().iterator(); } diff --git a/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/rule/XPathRuleTest.java b/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/rule/XPathRuleTest.java index 3979a181fc..7b161b1479 100644 --- a/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/rule/XPathRuleTest.java +++ b/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/rule/XPathRuleTest.java @@ -9,7 +9,6 @@ import static org.junit.Assert.assertEquals; import java.io.File; import java.io.StringReader; import java.util.HashMap; -import java.util.Iterator; import java.util.List; import org.junit.Test; @@ -55,7 +54,7 @@ public class XPathRuleTest extends RuleTst { XPathRule rule = makeXPath("//VariableDeclaratorId[string-length(@Name) < 3]"); rule.setMessage("{0}"); Report report = getReportForTestString(rule, TEST1); - RuleViolation rv = report.iterator().next(); + RuleViolation rv = report.getViolations().get(0); assertEquals("a", rv.getDescription()); } @@ -74,12 +73,7 @@ public class XPathRuleTest extends RuleTst { rule.definePropertyDescriptor(varDescriptor); Report report = getReportForTestString(rule, TEST3); - Iterator rv = report.iterator(); - int i = 0; - for (; rv.hasNext(); ++i) { - rv.next(); - } - assertEquals(2, i); + assertEquals(2, report.getViolations().size()); } @@ -92,7 +86,7 @@ public class XPathRuleTest extends RuleTst { rule.definePropertyDescriptor(varDescriptor); rule.setProperty(varDescriptor, "fiddle"); Report report = getReportForTestString(rule, TEST2); - RuleViolation rv = report.iterator().next(); + RuleViolation rv = report.getViolations().get(0); assertEquals(3, rv.getBeginLine()); } @@ -100,7 +94,7 @@ public class XPathRuleTest extends RuleTst { public void testFnPrefixOnSaxon() throws Exception { XPathRule rule = makeXPath("//VariableDeclaratorId[fn:matches(@Name, 'fiddle')]"); Report report = getReportForTestString(rule, TEST2); - RuleViolation rv = report.iterator().next(); + RuleViolation rv = report.getViolations().get(0); assertEquals(3, rv.getBeginLine()); } @@ -108,7 +102,7 @@ public class XPathRuleTest extends RuleTst { public void testNoFnPrefixOnSaxon() throws Exception { XPathRule rule = makeXPath("//VariableDeclaratorId[matches(@Name, 'fiddle')]"); Report report = getReportForTestString(rule, TEST2); - RuleViolation rv = report.iterator().next(); + RuleViolation rv = report.getViolations().get(0); assertEquals(3, rv.getBeginLine()); } diff --git a/pmd-javascript/src/test/java/net/sourceforge/pmd/ReportTest.java b/pmd-javascript/src/test/java/net/sourceforge/pmd/ReportTest.java index 3dbfa975f0..61e290920e 100644 --- a/pmd-javascript/src/test/java/net/sourceforge/pmd/ReportTest.java +++ b/pmd-javascript/src/test/java/net/sourceforge/pmd/ReportTest.java @@ -30,7 +30,7 @@ public class ReportTest extends RuleTst { String code = "function(x) // NOPMD test suppress\n" + "{ x = 1; }"; runTestFromString(code, rule, rpt, LanguageRegistry.getLanguage(EcmascriptLanguageModule.NAME).getDefaultVersion()); - assertTrue(rpt.isEmpty()); + assertTrue(rpt.getViolations().isEmpty()); assertEquals(1, rpt.getSuppressedRuleViolations().size()); } } diff --git a/pmd-jsp/src/test/java/net/sourceforge/pmd/lang/jsp/ast/XPathJspRuleTest.java b/pmd-jsp/src/test/java/net/sourceforge/pmd/lang/jsp/ast/XPathJspRuleTest.java index 3597fa8496..aa506e6554 100644 --- a/pmd-jsp/src/test/java/net/sourceforge/pmd/lang/jsp/ast/XPathJspRuleTest.java +++ b/pmd-jsp/src/test/java/net/sourceforge/pmd/lang/jsp/ast/XPathJspRuleTest.java @@ -47,9 +47,9 @@ public class XPathJspRuleTest extends RuleTst { p.getSourceCodeProcessor().processSourceCode(new StringReader(MATCH), new RuleSets(rules), ctx); - assertEquals("One violation expected!", 1, report.size()); + assertEquals("One violation expected!", 1, report.getViolations().size()); - RuleViolation rv = report.iterator().next(); + RuleViolation rv = report.getViolations().get(0); assertEquals(1, rv.getBeginLine()); } diff --git a/pmd-plsql/src/test/java/net/sourceforge/pmd/lang/plsql/PLSQLXPathRuleTest.java b/pmd-plsql/src/test/java/net/sourceforge/pmd/lang/plsql/PLSQLXPathRuleTest.java index a11b818163..11dd07b2f4 100644 --- a/pmd-plsql/src/test/java/net/sourceforge/pmd/lang/plsql/PLSQLXPathRuleTest.java +++ b/pmd-plsql/src/test/java/net/sourceforge/pmd/lang/plsql/PLSQLXPathRuleTest.java @@ -60,7 +60,7 @@ public class PLSQLXPathRuleTest extends AbstractPLSQLParserTst { ctx.setLanguageVersion(plsql.getDefaultVersion()); rule.apply(node, ctx); - Assert.assertEquals(2, ctx.getReport().size()); + Assert.assertEquals(2, ctx.getReport().getViolations().size()); } diff --git a/pmd-scala-modules/pmd-scala-common/src/test/java/net/sourceforge/pmd/lang/scala/rule/ScalaRuleTest.java b/pmd-scala-modules/pmd-scala-common/src/test/java/net/sourceforge/pmd/lang/scala/rule/ScalaRuleTest.java index 158462a568..bbe92d9b9d 100644 --- a/pmd-scala-modules/pmd-scala-common/src/test/java/net/sourceforge/pmd/lang/scala/rule/ScalaRuleTest.java +++ b/pmd-scala-modules/pmd-scala-common/src/test/java/net/sourceforge/pmd/lang/scala/rule/ScalaRuleTest.java @@ -11,7 +11,6 @@ import org.junit.Test; import net.sourceforge.pmd.Report; import net.sourceforge.pmd.RuleContext; -import net.sourceforge.pmd.internal.util.IteratorUtil; import net.sourceforge.pmd.lang.scala.ast.ASTSource; import net.sourceforge.pmd.lang.scala.ast.ASTTermApply; import net.sourceforge.pmd.lang.scala.ast.ASTTermName; @@ -52,6 +51,6 @@ public class ScalaRuleTest extends BaseScalaTest { }; Report report = scala.getReportForResource(rule, SCALA_TEST); - Assert.assertEquals(1, IteratorUtil.count(report.iterator())); + Assert.assertEquals(1, report.getViolations().size()); } } diff --git a/pmd-scala-modules/pmd-scala-common/src/test/java/net/sourceforge/pmd/lang/scala/rule/XPathRuleTest.java b/pmd-scala-modules/pmd-scala-common/src/test/java/net/sourceforge/pmd/lang/scala/rule/XPathRuleTest.java index d8bca517d9..fbef973895 100644 --- a/pmd-scala-modules/pmd-scala-common/src/test/java/net/sourceforge/pmd/lang/scala/rule/XPathRuleTest.java +++ b/pmd-scala-modules/pmd-scala-common/src/test/java/net/sourceforge/pmd/lang/scala/rule/XPathRuleTest.java @@ -23,7 +23,7 @@ public class XPathRuleTest extends BaseScalaTest { @Test public void testPrintHelloWorld() { Report report = evaluate(SCALA_TEST, "//TermApply/TermName[@Image=\"println\"]"); - RuleViolation rv = report.iterator().next(); + RuleViolation rv = report.getViolations().get(0); assertEquals(2, rv.getBeginLine()); } diff --git a/pmd-test/src/main/java/net/sourceforge/pmd/testframework/RuleTst.java b/pmd-test/src/main/java/net/sourceforge/pmd/testframework/RuleTst.java index e4e2d8a025..2159a3ba15 100644 --- a/pmd-test/src/main/java/net/sourceforge/pmd/testframework/RuleTst.java +++ b/pmd-test/src/main/java/net/sourceforge/pmd/testframework/RuleTst.java @@ -14,7 +14,6 @@ import java.io.StringReader; import java.io.StringWriter; import java.util.ArrayList; import java.util.Collections; -import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Properties; @@ -148,7 +147,7 @@ public abstract class RuleTst { } report = processUsingStringReader(test, rule); - res = report.size(); + res = report.getViolations().size(); } catch (Exception e) { e.printStackTrace(); throw new RuntimeException('"' + test.getDescription() + "\" failed", e); @@ -187,15 +186,13 @@ public abstract class RuleTst { } List expectedMessages = test.getExpectedMessages(); - if (report.size() != expectedMessages.size()) { + if (report.getViolations().size() != expectedMessages.size()) { throw new RuntimeException("Test setup error: number of expected messages doesn't match " + "number of violations for test case '" + test.getDescription() + "'"); } - Iterator it = report.iterator(); int index = 0; - while (it.hasNext()) { - RuleViolation violation = it.next(); + for (RuleViolation violation : report.getViolations()) { String actual = violation.getDescription(); if (!expectedMessages.get(index).equals(actual)) { printReport(test, report); @@ -213,16 +210,14 @@ public abstract class RuleTst { } List expected = test.getExpectedLineNumbers(); - if (report.size() != expected.size()) { + if (report.getViolations().size() != expected.size()) { throw new RuntimeException("Test setup error: number of expected line numbers " + expected.size() - + " doesn't match number of violations " + report.size() + " for test case '" + + " doesn't match number of violations " + report.getViolations().size() + " for test case '" + test.getDescription() + "'"); } - Iterator it = report.iterator(); int index = 0; - while (it.hasNext()) { - RuleViolation violation = it.next(); + for (RuleViolation violation : report.getViolations()) { Integer actual = violation.getBeginLine(); if (expected.get(index) != actual.intValue()) { printReport(test, report); @@ -236,7 +231,7 @@ public abstract class RuleTst { private void printReport(TestDescriptor test, Report report) { System.out.println("--------------------------------------------------------------"); System.out.println("Test Failure: " + test.getDescription()); - System.out.println(" -> Expected " + test.getNumberOfProblemsExpected() + " problem(s), " + report.size() + System.out.println(" -> Expected " + test.getNumberOfProblemsExpected() + " problem(s), " + report.getViolations().size() + " problem(s) found."); System.out.println(" -> Expected messages: " + test.getExpectedMessages()); System.out.println(" -> Expected line numbers: " + test.getExpectedLineNumbers());