From 27235bb91eaef651ec0731303bf9848626a56f54 Mon Sep 17 00:00:00 2001 From: Rick Giles Date: Wed, 16 Jul 2003 10:19:49 +0000 Subject: [PATCH] update SeverityMatchFilter --- .../filters/SeverityMatchFilter.java | 21 +++++- .../tools/checkstyle/filters/AllTests.java | 1 + .../filters/SeverityMatchFilterTest.java | 71 +++++++++++++++++++ 3 files changed, 91 insertions(+), 2 deletions(-) create mode 100644 src/tests/com/puppycrawl/tools/checkstyle/filters/SeverityMatchFilterTest.java diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/filters/SeverityMatchFilter.java b/src/checkstyle/com/puppycrawl/tools/checkstyle/filters/SeverityMatchFilter.java index 5bcb8095a..538991c36 100644 --- a/src/checkstyle/com/puppycrawl/tools/checkstyle/filters/SeverityMatchFilter.java +++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/filters/SeverityMatchFilter.java @@ -36,6 +36,9 @@ public class SeverityMatchFilter /** the severity level to accept */ private SeverityLevel mSeverityLevel = SeverityLevel.ERROR; + /** whether to accept or reject on severity matches */ + private boolean mAcceptOnMatch = true; + /** * Sets the severity level. The string should be one of the names * defined in the SeverityLevel class. @@ -48,6 +51,15 @@ public class SeverityMatchFilter mSeverityLevel = SeverityLevel.getInstance(aSeverity); } + /** + * Sets whether to accept or reject on matching severity level. + * @param aAcceptOnMatch if true, accept on matches; if + * false, reject on matches. + */ + public final void setAcceptOnMatch(boolean aAcceptOnMatch) + { + mAcceptOnMatch = aAcceptOnMatch; + } /** @see com.puppycrawl.tools.checkstyle.filter.Filter */ public boolean accept(Object aObject) @@ -57,7 +69,12 @@ public class SeverityMatchFilter } final AuditEvent event = (AuditEvent) aObject; - - return mSeverityLevel.equals(event.getSeverityLevel()); + boolean result = mSeverityLevel.equals(event.getSeverityLevel()); + if (mAcceptOnMatch) { + return result; + } + else { + return !result; + } } } diff --git a/src/tests/com/puppycrawl/tools/checkstyle/filters/AllTests.java b/src/tests/com/puppycrawl/tools/checkstyle/filters/AllTests.java index d8e432438..8f017813e 100644 --- a/src/tests/com/puppycrawl/tools/checkstyle/filters/AllTests.java +++ b/src/tests/com/puppycrawl/tools/checkstyle/filters/AllTests.java @@ -18,6 +18,7 @@ public class AllTests suite.addTest(new TestSuite(IntMatchFilterTest.class)); suite.addTest(new TestSuite(IntRangeFilterTest.class)); suite.addTest(new TestSuite(CSVFilterTest.class)); + suite.addTest(new TestSuite(SeverityMatchFilterTest.class)); suite.addTest(new TestSuite(SuppressElementTest.class)); //$JUnit-END$ return suite; diff --git a/src/tests/com/puppycrawl/tools/checkstyle/filters/SeverityMatchFilterTest.java b/src/tests/com/puppycrawl/tools/checkstyle/filters/SeverityMatchFilterTest.java new file mode 100644 index 000000000..8fc57f118 --- /dev/null +++ b/src/tests/com/puppycrawl/tools/checkstyle/filters/SeverityMatchFilterTest.java @@ -0,0 +1,71 @@ +package com.puppycrawl.tools.checkstyle.filters; + +import org.apache.regexp.RESyntaxException; + +import com.puppycrawl.tools.checkstyle.api.AuditEvent; +import com.puppycrawl.tools.checkstyle.api.LocalizedMessage; +import com.puppycrawl.tools.checkstyle.api.SeverityLevel; + +import junit.framework.TestCase; + +/** Tests SeverityMatchFilter */ +public class SeverityMatchFilterTest extends TestCase +{ + private SeverityMatchFilter filter; + + public void setUp() + throws RESyntaxException + { + filter = new SeverityMatchFilter(); + } + + public void testDefault() + { + final AuditEvent ev = new AuditEvent(this, "Test.java"); + assertFalse("no message", filter.accept(ev)); + SeverityLevel level = SeverityLevel.ERROR; + LocalizedMessage message = + new LocalizedMessage(0, 0, "", "", null, level, this.getClass()); + final AuditEvent ev2 = new AuditEvent(this, "ATest.java", message); + assertTrue("level:" + level, filter.accept(ev2)); + level = SeverityLevel.INFO; + message = new LocalizedMessage(0, 0, "", "", null, level, this.getClass()); + final AuditEvent ev3 = new AuditEvent(this, "ATest.java", message); + assertFalse("level:" + level, filter.accept(ev3)); + } + + public void testSeverity() + { + filter.setSeverity("info"); + final AuditEvent ev = new AuditEvent(this, "Test.java"); + // event with no message has severity level INFO + assertTrue("no message", filter.accept(ev)); + SeverityLevel level = SeverityLevel.ERROR; + LocalizedMessage message = + new LocalizedMessage(0, 0, "", "", null, level, this.getClass()); + final AuditEvent ev2 = new AuditEvent(this, "ATest.java", message); + assertFalse("level:" + level, filter.accept(ev2)); + level = SeverityLevel.INFO; + message = new LocalizedMessage(0, 0, "", "", null, level, this.getClass()); + final AuditEvent ev3 = new AuditEvent(this, "ATest.java", message); + assertTrue("level:" + level, filter.accept(ev3)); + } + + public void testAcceptOnMatch() + { + filter.setSeverity("info"); + filter.setAcceptOnMatch(false); + final AuditEvent ev = new AuditEvent(this, "Test.java"); + // event with no message has severity level INFO + assertFalse("no message", filter.accept(ev)); + SeverityLevel level = SeverityLevel.ERROR; + LocalizedMessage message = + new LocalizedMessage(0, 0, "", "", null, level, this.getClass()); + final AuditEvent ev2 = new AuditEvent(this, "ATest.java", message); + assertTrue("level:" + level, filter.accept(ev2)); + level = SeverityLevel.INFO; + message = new LocalizedMessage(0, 0, "", "", null, level, this.getClass()); + final AuditEvent ev3 = new AuditEvent(this, "ATest.java", message); + assertFalse("level:" + level, filter.accept(ev3)); + } +}