diff --git a/pmd-core/src/test/java/net/sourceforge/pmd/RuleSetFactoryCompatibilityTest.java b/pmd-core/src/test/java/net/sourceforge/pmd/RuleSetFactoryCompatibilityTest.java index 060c4770bc..9ed415c74d 100644 --- a/pmd-core/src/test/java/net/sourceforge/pmd/RuleSetFactoryCompatibilityTest.java +++ b/pmd-core/src/test/java/net/sourceforge/pmd/RuleSetFactoryCompatibilityTest.java @@ -10,6 +10,7 @@ import java.nio.charset.StandardCharsets; import org.apache.commons.io.IOUtils; import org.junit.Assert; +import org.junit.Ignore; import org.junit.Test; public class RuleSetFactoryCompatibilityTest { @@ -29,19 +30,33 @@ public class RuleSetFactoryCompatibilityTest { RuleSetFactory factory = new RuleSetFactory(); factory.getCompatibilityFilter().addFilterRuleMoved("dummy", "notexisting", "basic", "DummyBasicMockRule"); - RuleSet createdRuleSet = factory.createRuleSet(new RuleSetReferenceId(null) { - @Override - public InputStream getInputStream(ClassLoader classLoader) throws RuleSetNotFoundException { - try { - return new ByteArrayInputStream(ruleset.getBytes("UTF-8")); - } catch (UnsupportedEncodingException e) { - throw new RuleSetNotFoundException(e.getMessage()); - } - } - }); + RuleSet createdRuleSet = createRulesetFromString(ruleset, factory); Assert.assertNotNull(createdRuleSet.getRuleByName("DummyBasicMockRule")); } - + + @Ignore + @Test + public void testExclusion() throws Exception { + final String ruleset = "\n" + + "\n" + + "\n" + + " Test\n" + + "\n" + + " \n" + + " \n" + + " \n" + + "\n"; + + RuleSetFactory factory = new RuleSetFactory(); + factory.getCompatibilityFilter().addFilterRuleRenamed("dummy", "basic", "AnotherOldNameOfBasicMockRule", "DummyBasicMockRule"); + + RuleSet createdRuleSet = createRulesetFromString(ruleset, factory); + Assert.assertNotNull(createdRuleSet.getRuleByName("DummyBasicMockRule")); + } + @Test public void testFilter() throws Exception { RuleSetFactoryCompatibility rsfc = new RuleSetFactoryCompatibility(); @@ -74,6 +89,32 @@ public class RuleSetFactoryCompatibilityTest { Assert.assertTrue(out.contains("")); } + @Ignore + @Test + public void testExclusionFilter() throws Exception { + RuleSetFactoryCompatibility rsfc = new RuleSetFactoryCompatibility(); + rsfc.addFilterRuleRenamed("dummy", "basic", "AnotherOldNameOfBasicMockRule", "NewNameOfBasicMockRule"); + + String in = "\n" + + "\n" + + "\n" + + " Test\n" + + "\n" + + " \n" + + " \n" + + " \n" + + "\n"; + InputStream stream = new ByteArrayInputStream(in.getBytes(StandardCharsets.ISO_8859_1)); + Reader filtered = rsfc.filterRuleSetFile(stream); + String out = IOUtils.toString(filtered); + + Assert.assertFalse(out.contains("OldNameOfBasicMockRule")); + Assert.assertTrue(out.contains("")); + } + @Test public void testEncoding() { RuleSetFactoryCompatibility rsfc = new RuleSetFactoryCompatibility(); @@ -85,4 +126,18 @@ public class RuleSetFactoryCompatibilityTest { testString = ""; Assert.assertEquals("UTF-8", rsfc.determineEncoding(testString.getBytes(StandardCharsets.ISO_8859_1))); } + + private RuleSet createRulesetFromString(final String ruleset, RuleSetFactory factory) + throws RuleSetNotFoundException { + return factory.createRuleSet(new RuleSetReferenceId(null) { + @Override + public InputStream getInputStream(ClassLoader classLoader) throws RuleSetNotFoundException { + try { + return new ByteArrayInputStream(ruleset.getBytes("UTF-8")); + } catch (UnsupportedEncodingException e) { + throw new RuleSetNotFoundException(e.getMessage()); + } + } + }); + } }