Search in sources :

Example 11 with TokenEntry

use of net.sourceforge.pmd.cpd.TokenEntry in project sonarqube by SonarSource.

the class XooTokenizerTest method testExecution.

@Test
public void testExecution() throws IOException {
    File source = new File(baseDir, "src/foo.xoo");
    FileUtils.write(source, "token1 token2 token3\ntoken4");
    DefaultInputFile inputFile = new TestInputFileBuilder("foo", "src/foo.xoo").setLanguage("xoo").setModuleBaseDir(baseDir.toPath()).build();
    fileSystem.add(inputFile);
    XooTokenizer tokenizer = new XooTokenizer(fileSystem);
    SourceCode sourceCode = mock(SourceCode.class);
    when(sourceCode.getFileName()).thenReturn(inputFile.absolutePath());
    Tokens cpdTokens = new Tokens();
    tokenizer.tokenize(sourceCode, cpdTokens);
    // 4 tokens + EOF
    assertThat(cpdTokens.getTokens()).hasSize(5);
    assertThat(cpdTokens.getTokens().get(3)).isEqualTo(new TokenEntry("token4", "src/foo.xoo", 2));
}
Also used : TestInputFileBuilder(org.sonar.api.batch.fs.internal.TestInputFileBuilder) SourceCode(net.sourceforge.pmd.cpd.SourceCode) TokenEntry(net.sourceforge.pmd.cpd.TokenEntry) DefaultInputFile(org.sonar.api.batch.fs.internal.DefaultInputFile) DefaultInputFile(org.sonar.api.batch.fs.internal.DefaultInputFile) File(java.io.File) Tokens(net.sourceforge.pmd.cpd.Tokens) Test(org.junit.Test)

Example 12 with TokenEntry

use of net.sourceforge.pmd.cpd.TokenEntry in project pmd by pmd.

the class AbstractTokenizerTest method tokenizeTest.

protected void tokenizeTest() throws IOException {
    Tokens tokens = new Tokens();
    tokenizer.tokenize(sourceCode, tokens);
    List<TokenEntry> entries = tokens.getTokens();
    assertEquals(expectedTokenCount, entries.size());
}
Also used : TokenEntry(net.sourceforge.pmd.cpd.TokenEntry) Tokens(net.sourceforge.pmd.cpd.Tokens)

Example 13 with TokenEntry

use of net.sourceforge.pmd.cpd.TokenEntry in project maven-plugins by apache.

the class CpdReportTest method testWriteNonHtml.

public void testWriteNonHtml() throws Exception {
    File testPom = new File(getBasedir(), "src/test/resources/unit/default-configuration/cpd-default-configuration-plugin-config.xml");
    CpdReport mojo = (CpdReport) lookupMojo("cpd", testPom);
    assertNotNull(mojo);
    TokenEntry tFirstEntry = new TokenEntry("public java", "MyClass.java", 2);
    TokenEntry tSecondEntry = new TokenEntry("public java", "MyClass3.java", 2);
    String duplicatedCodeFragment = "// ----- duplicated code example -----";
    SourceCode sourceCodeFirst = new SourceCode(new SourceCode.StringCodeLoader(PMD.EOL + duplicatedCodeFragment + PMD.EOL, "MyClass.java"));
    SourceCode sourceCodeSecond = new SourceCode(new SourceCode.StringCodeLoader(PMD.EOL + duplicatedCodeFragment + PMD.EOL, "MyClass3.java"));
    List<Match> tList = new ArrayList<>();
    Mark tFirstMark = new Mark(tFirstEntry);
    tFirstMark.setSourceCode(sourceCodeFirst);
    tFirstMark.setLineCount(1);
    Mark tSecondMark = new Mark(tSecondEntry);
    tSecondMark.setSourceCode(sourceCodeSecond);
    tSecondMark.setLineCount(1);
    Match tMatch = new Match(2, tFirstMark, tSecondMark);
    tList.add(tMatch);
    CPDConfiguration cpdConfiguration = new CPDConfiguration();
    cpdConfiguration.setMinimumTileSize(100);
    cpdConfiguration.setLanguage(new JavaLanguage());
    cpdConfiguration.setEncoding("UTF-8");
    CPD tCpd = new MockCpd(cpdConfiguration, tList.iterator());
    tCpd.go();
    mojo.writeNonHtml(tCpd);
    File tReport = new File("target/test/unit/default-configuration/target/cpd.xml");
    // parseDocument( new BufferedInputStream( new FileInputStream( report ) ) );
    DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
    Document pmdCpdDocument = builder.parse(tReport);
    assertNotNull(pmdCpdDocument);
    String str = readFile(new File(getBasedir(), "target/test/unit/default-configuration/target/cpd.xml"));
    assertTrue(lowerCaseContains(str, "MyClass.java"));
    assertTrue(lowerCaseContains(str, "MyClass3.java"));
    assertTrue(lowerCaseContains(str, duplicatedCodeFragment));
}
Also used : SourceCode(net.sourceforge.pmd.cpd.SourceCode) CPDConfiguration(net.sourceforge.pmd.cpd.CPDConfiguration) ArrayList(java.util.ArrayList) Mark(net.sourceforge.pmd.cpd.Mark) JavaLanguage(net.sourceforge.pmd.cpd.JavaLanguage) Document(org.w3c.dom.Document) Match(net.sourceforge.pmd.cpd.Match) TokenEntry(net.sourceforge.pmd.cpd.TokenEntry) DocumentBuilder(javax.xml.parsers.DocumentBuilder) CPD(net.sourceforge.pmd.cpd.CPD) File(java.io.File)

Example 14 with TokenEntry

use of net.sourceforge.pmd.cpd.TokenEntry in project pmd-eclipse-plugin by pmd.

the class CPDViewDoubleClickEventListener method doubleClick.

/*
     * (non-Javadoc)
     * 
     * @see
     * org.eclipse.jface.viewers.IDoubleClickListener#doubleClick(org.eclipse.
     * jface.viewers.DoubleClickEvent)
     */
public void doubleClick(DoubleClickEvent event) {
    final IStructuredSelection selection = (IStructuredSelection) event.getSelection();
    final Object object = selection.getFirstElement();
    final TreeNode node = (TreeNode) object;
    final Object value = node.getValue();
    final TreeViewer treeViewer = view.getTreeViewer();
    if (value instanceof Match) {
        if (treeViewer.getExpandedState(node)) {
            // the node is expanded, so collapse
            treeViewer.collapseToLevel(node, TreeViewer.ALL_LEVELS);
        } else {
            // the node is collapsed, so expand
            treeViewer.expandToLevel(node, 1);
        }
    } else if (value instanceof TokenEntry) {
        final TokenEntry entry = (TokenEntry) value;
        final Match match = (Match) node.getParent().getValue();
        highlightText(match, entry);
    }
}
Also used : TokenEntry(net.sourceforge.pmd.cpd.TokenEntry) TreeNode(org.eclipse.jface.viewers.TreeNode) TreeViewer(org.eclipse.jface.viewers.TreeViewer) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) Match(net.sourceforge.pmd.cpd.Match)

Example 15 with TokenEntry

use of net.sourceforge.pmd.cpd.TokenEntry in project pmd-eclipse-plugin by pmd.

the class CPDViewLabelProvider method getColumnImage.

/*
     * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object, int)
     */
public Image getColumnImage(Object element, int columnIndex) {
    Image image = null;
    final TreeNode node = (TreeNode) element;
    final Object value = node.getValue();
    // if the Element is a Match or TokenEntry
    switch(columnIndex) {
        case 1:
            if (value instanceof Match) {
                image = PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJS_ERROR_TSK);
            } else if (value instanceof TokenEntry) {
                image = PlatformUI.getWorkbench().getSharedImages().getImage(SharedImages.IMG_OPEN_MARKER);
            }
            break;
        default:
    }
    return image;
}
Also used : TokenEntry(net.sourceforge.pmd.cpd.TokenEntry) TreeNode(org.eclipse.jface.viewers.TreeNode) Image(org.eclipse.swt.graphics.Image) Match(net.sourceforge.pmd.cpd.Match)

Aggregations

TokenEntry (net.sourceforge.pmd.cpd.TokenEntry)15 Match (net.sourceforge.pmd.cpd.Match)8 File (java.io.File)4 Mark (net.sourceforge.pmd.cpd.Mark)4 SourceCode (net.sourceforge.pmd.cpd.SourceCode)4 TreeNode (org.eclipse.jface.viewers.TreeNode)4 ArrayList (java.util.ArrayList)3 Tokens (net.sourceforge.pmd.cpd.Tokens)3 DocumentBuilder (javax.xml.parsers.DocumentBuilder)2 CPD (net.sourceforge.pmd.cpd.CPD)2 CPDConfiguration (net.sourceforge.pmd.cpd.CPDConfiguration)2 JavaLanguage (net.sourceforge.pmd.cpd.JavaLanguage)2 Image (org.eclipse.swt.graphics.Image)2 Test (org.junit.Test)2 Document (org.w3c.dom.Document)2 ByteArrayInputStream (java.io.ByteArrayInputStream)1 IOException (java.io.IOException)1 InputStreamReader (java.io.InputStreamReader)1 Tokenizer (net.sourceforge.pmd.cpd.Tokenizer)1 TokenMgrError (net.sourceforge.pmd.lang.ast.TokenMgrError)1