View Javadoc

    1   /**
    2    * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
    3    */
    4   package net.sourceforge.pmd.cpd;
    5
    6   import java.io.ByteArrayOutputStream;
    7   import java.io.PrintStream;
    8
    9   import junit.framework.Assert;
    10
    11  import org.junit.After;
    12  import org.junit.Before;
    13  import org.junit.Test;
    14
    15  /**
    16   * Unit test for {@link CPDCommandLineInterface}.
    17   *
    18   */
    19  public class CPDCommandLineInterfaceTest {
    20      private ByteArrayOutputStream buffer;
    21      private PrintStream originalStdout;
    22
    23
    24      @Before
    25      public void setup() {
    26          originalStdout = System.out;
    27          buffer = new ByteArrayOutputStream();
    28          System.setOut(new PrintStream(buffer));
    29      }
    30
    31      @After
    32      public void teardown() {
    33          System.setOut(originalStdout);
    34      }
    35
    36      /**
    37       * Test ignore identifiers argument.
    38       */
    39      @Test
    40      public void testIgnoreIdentifiers() throws Exception {
    41          runCPD("--minimum-tokens", "34", "--language", "java", "--files", "src/test/resources/net/sourceforge/pmd/cpd/clitest/", "--ignore-identifiers");
    42
    43          String out = buffer.toString("UTF-8");
    44          Assert.assertTrue(out.contains("Found a 7 line (34 tokens) duplication"));
    45      }
    46
    47      private void runCPD(String... args) {
    48          CPD.dontExitForTests = true;
    49          CPD.main(args);
    50      }
    51  }