View Javadoc

    1   /**
    2    * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
    3    */
    4   package net.sourceforge.pmd.lang.java.rule.strings;
    5
    6   import static org.junit.Assert.assertEquals;
    7   import static org.junit.Assert.assertTrue;
    8   import net.sourceforge.pmd.Rule;
    9   import net.sourceforge.pmd.lang.java.rule.strings.AvoidDuplicateLiteralsRule;
    10  import net.sourceforge.pmd.testframework.SimpleAggregatorTst;
    11
    12  import org.junit.Test;
    13
    14
    15  import java.util.Set;
    16
    17   public class AvoidDuplicateLiteralsRuleTest extends SimpleAggregatorTst {
    18
    19       @Test
    20       public void testAll() {
    21           Rule rule = findRule("java-strings", "AvoidDuplicateLiterals");
    22           rule.setProperty(AvoidDuplicateLiteralsRule.THRESHOLD_DESCRIPTOR, 2);
    23           runTests(rule);
    24       }
    25
    26       @Test
    27       public void testStringParserEmptyString() {
    28           AvoidDuplicateLiteralsRule.ExceptionParser p = new AvoidDuplicateLiteralsRule.ExceptionParser(',');
    29           Set res = p.parse("");
    30           assertTrue(res.isEmpty());
    31       }
    32
    33       @Test
    34       public void testStringParserSimple() {
    35           AvoidDuplicateLiteralsRule.ExceptionParser p = new AvoidDuplicateLiteralsRule.ExceptionParser(',');
    36           Set res = p.parse("a,b,c");
    37           assertEquals(3, res.size());
    38           assertTrue(res.contains("a"));
    39           assertTrue(res.contains("b"));
    40           assertTrue(res.contains("c"));
    41       }
    42
    43       @Test
    44       public void testStringParserEscapedChar() {
    45           AvoidDuplicateLiteralsRule.ExceptionParser p = new AvoidDuplicateLiteralsRule.ExceptionParser(',');
    46           Set res = p.parse("a,b,\\,");
    47           assertEquals(3, res.size());
    48           assertTrue(res.contains("a"));
    49           assertTrue(res.contains("b"));
    50           assertTrue(res.contains(","));
    51       }
    52
    53       @Test
    54       public void testStringParserEscapedEscapedChar() {
    55           AvoidDuplicateLiteralsRule.ExceptionParser p = new AvoidDuplicateLiteralsRule.ExceptionParser(',');
    56           Set res = p.parse("a,b,\\\\");
    57           assertEquals(3, res.size());
    58           assertTrue(res.contains("a"));
    59           assertTrue(res.contains("b"));
    60           assertTrue(res.contains("\\"));
    61       }
    62
    63       public static junit.framework.Test suite() {
    64           return new junit.framework.JUnit4TestAdapter(AvoidDuplicateLiteralsRuleTest.class);
    65       }
    66   }