You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

CPDFile3.java 2.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. /**
  2. * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
  3. */
  4. package net.sourceforge.pmd.cpd.fork;
  5. import static org.hamcrest.CoreMatchers.is;
  6. import static org.hamcrest.CoreMatchers.nullValue;
  7. import static org.junit.Assert.assertThat;
  8. import java.nio.charset.Charset;
  9. import java.util.HashMap;
  10. import java.util.List;
  11. import java.util.Map;
  12. import net.sourceforge.pmd.cpd.CPDListener;
  13. import net.sourceforge.pmd.cpd.CPDNullListener;
  14. import net.sourceforge.pmd.cpd.Language;
  15. import net.sourceforge.pmd.cpd.SourceCode;
  16. import net.sourceforge.pmd.cpd.Tokens;
  17. import org.apache.commons.io.FileUtils;
  18. import org.sonar.duplications.cpd.CPD;
  19. import org.sonar.duplications.cpd.Match;
  20. import org.sonar.duplications.cpd.MatchAlgorithm;
  21. public class CPDFile2 {
  22. public void method1(){
  23. CPD cpd = new CPD(20, cpdLanguage);
  24. cpd.setEncoding(Charset.defaultCharset().name());
  25. cpd.setLoadSourceCodeSlices(false);
  26. cpd.add(FileUtils.toFile(CPD.class.getResource("/org/sonar/duplications/cpd/CPDTest/CPDFile1.java")));
  27. cpd.add(FileUtils.toFile(CPD.class.getResource("/org/sonar/duplications/cpd/CPDTest/CPDFile2.java")));
  28. cpd.go();
  29. List<Match> matches = getMatches(cpd);
  30. assertThat(matches.size(), is(1));
  31. org.sonar.duplications.cpd.Match match = matches.get(0);
  32. assertThat(match.getLineCount(), is(26));
  33. assertThat(match.getFirstMark().getBeginLine(), is(16));
  34. assertThat(match.getSourceCodeSlice(), is(nullValue()));
  35. }
  36. public void method1Duplicated(){
  37. CPD cpd = new CPD(20, cpdLanguage);
  38. cpd.setEncoding(Charset.defaultCharset().name());
  39. cpd.setLoadSourceCodeSlices(false);
  40. cpd.add(FileUtils.toFile(CPD.class.getResource("/org/sonar/duplications/cpd/CPDTest/CPDFile1.java")));
  41. cpd.add(FileUtils.toFile(CPD.class.getResource("/org/sonar/duplications/cpd/CPDTest/CPDFile2.java")));
  42. cpd.go();
  43. List<Match> matches = getMatches(cpd);
  44. assertThat(matches.size(), is(1));
  45. org.sonar.duplications.cpd.Match match = matches.get(0);
  46. assertThat(match.getLineCount(), is(26));
  47. assertThat(match.getFirstMark().getBeginLine(), is(16));
  48. assertThat(match.getSourceCodeSlice(), is(nullValue()));
  49. }
  50. }