Skip to content

Commit 1914f2d

Browse files
committed
Fix test compile errors in eclipse
1 parent ed1b1e3 commit 1914f2d

File tree

8 files changed

+39
-17
lines changed

8 files changed

+39
-17
lines changed

net.sourceforge.pmd.eclipse.plugin.test/src/main/java/net/sourceforge/pmd/eclipse/EclipseUtils.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import java.util.concurrent.CountDownLatch;
1818
import java.util.regex.Pattern;
1919

20+
import org.eclipse.core.resources.IContainer;
2021
import org.eclipse.core.resources.IFile;
2122
import org.eclipse.core.resources.IFolder;
2223
import org.eclipse.core.resources.IProject;
@@ -25,6 +26,7 @@
2526
import org.eclipse.core.resources.IWorkspaceRoot;
2627
import org.eclipse.core.resources.ResourcesPlugin;
2728
import org.eclipse.core.runtime.CoreException;
29+
import org.eclipse.core.runtime.IPath;
2830
import org.eclipse.core.runtime.NullProgressMonitor;
2931
import org.eclipse.core.runtime.Path;
3032
import org.eclipse.jdt.core.IClasspathEntry;
@@ -352,4 +354,22 @@ public static IFile createTestSourceFile(IProject testProject, String fileName,
352354
return sourceFile;
353355
}
354356

357+
/**
358+
* Creates a folder structure recursively.
359+
*
360+
* @param testProject
361+
* @param fullpath
362+
* @throws CoreException
363+
*/
364+
public static void createFolders(IProject testProject, String fullpath) throws CoreException {
365+
IPath path = new Path(fullpath);
366+
IContainer current = testProject;
367+
for (String segment : path.segments()) {
368+
IFolder folder = current.getFolder(new Path(segment));
369+
if (!folder.exists()) {
370+
folder.create(true, false, null);
371+
}
372+
current = folder;
373+
}
374+
}
355375
}

net.sourceforge.pmd.eclipse.plugin.test/src/main/java/net/sourceforge/pmd/eclipse/runtime/cmd/MultipleRulesetsTest.java

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
*/
3333
public class MultipleRulesetsTest {
3434
private IProject testProject;
35+
private static final String BASE_PATH = "/src/main/java/net/sourceforge/pmd/eclipse/runtime/cmd/multiplerulesets/";
3536

3637
@Before
3738
public void setUp() throws Exception {
@@ -54,17 +55,17 @@ public void setUp() throws Exception {
5455
null);
5556

5657
// 3. Create test sources
57-
folder.getFolder("first").create(true, true, null);
58-
EclipseUtils.createTestSourceFile(testProject, "/src/main/java/first/First.java",
59-
IOUtils.toString(MultipleRulesetsTest.class.getResourceAsStream("multiplerulesets/First.java"),
58+
EclipseUtils.createFolders(testProject, BASE_PATH + "first");
59+
EclipseUtils.createTestSourceFile(testProject, BASE_PATH + "first/First.java",
60+
IOUtils.toString(MultipleRulesetsTest.class.getResourceAsStream("multiplerulesets/first/First.java"),
6061
StandardCharsets.UTF_8.name()));
61-
folder.getFolder("second").create(true, true, null);
62-
EclipseUtils.createTestSourceFile(testProject, "/src/main/java/second/Second.java",
63-
IOUtils.toString(MultipleRulesetsTest.class.getResourceAsStream("multiplerulesets/Second.java"),
62+
EclipseUtils.createFolders(testProject, BASE_PATH + "second");
63+
EclipseUtils.createTestSourceFile(testProject, BASE_PATH + "second/Second.java",
64+
IOUtils.toString(MultipleRulesetsTest.class.getResourceAsStream("multiplerulesets/second/Second.java"),
6465
StandardCharsets.UTF_8.name()));
65-
folder.getFolder("third").create(true, true, null);
66-
EclipseUtils.createTestSourceFile(testProject, "/src/main/java/third/Third.java",
67-
IOUtils.toString(MultipleRulesetsTest.class.getResourceAsStream("multiplerulesets/Third.java"),
66+
EclipseUtils.createFolders(testProject, BASE_PATH + "third");
67+
EclipseUtils.createTestSourceFile(testProject, BASE_PATH + "third/Third.java",
68+
IOUtils.toString(MultipleRulesetsTest.class.getResourceAsStream("multiplerulesets/third/Third.java"),
6869
StandardCharsets.UTF_8.name()));
6970

7071
// 4. Copy rulesets
@@ -110,18 +111,18 @@ public void testReviewCmdBasic() throws CoreException {
110111
cmd.performExecute();
111112
cmd.join();
112113

113-
IMarker[] markersFirst = this.testProject.getFile("src/main/java/first/First.java")
114+
IMarker[] markersFirst = this.testProject.getFile(BASE_PATH + "first/First.java")
114115
.findMarkers(PMDRuntimeConstants.PMD_MARKER_1, false, 1);
115116
Assert.assertEquals(2, markersFirst.length);
116117
assertHasRuleViolation(markersFirst, "ClassNamingConventions");
117118
assertHasRuleViolation(markersFirst, "UseUtilityClass");
118119

119-
IMarker[] markersSecond = this.testProject.getFile("src/main/java/second/Second.java")
120+
IMarker[] markersSecond = this.testProject.getFile(BASE_PATH + "second/Second.java")
120121
.findMarkers(PMDRuntimeConstants.PMD_MARKER_1, false, 1);
121122
Assert.assertEquals(1, markersSecond.length);
122123
assertHasRuleViolation(markersSecond, "ClassNamingConventions");
123124

124-
IMarker[] markersThird = this.testProject.getFile("src/main/java/third/Third.java")
125+
IMarker[] markersThird = this.testProject.getFile(BASE_PATH + "third/Third.java")
125126
.findMarkers(PMDRuntimeConstants.PMD_MARKER_1, false, 1);
126127
Assert.assertEquals(1, markersThird.length);
127128
assertHasRuleViolation(markersThird, "UseUtilityClass");

net.sourceforge.pmd.eclipse.plugin.test/src/main/java/net/sourceforge/pmd/eclipse/runtime/cmd/ReviewCodeCmdNonJavaTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ public void checkCodeForNonJavaProject() throws Exception {
5151
is = EclipseUtils.getResourceStream(testProject, "/src/somefile.js");
5252
Assert.assertNotNull("Cannot find the test source file", is);
5353
is.close();
54+
testProject.refreshLocal(IResource.DEPTH_INFINITE, null);
5455

5556
// 3. Enable PMD for the test project
5657
IProjectProperties properties = PMDPlugin.getDefault().getPropertiesManager().loadProjectProperties(testProject);

net.sourceforge.pmd.eclipse.plugin.test/src/main/resources/net/sourceforge/pmd/eclipse/runtime/cmd/multiplerulesets/First.java renamed to net.sourceforge.pmd.eclipse.plugin.test/src/main/resources/net/sourceforge/pmd/eclipse/runtime/cmd/multiplerulesets/first/First.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
33
*/
44

5-
package first;
5+
package net.sourceforge.pmd.eclipse.runtime.cmd.multiplerulesets.first;
66

77
public class First {
88

net.sourceforge.pmd.eclipse.plugin.test/src/main/resources/net/sourceforge/pmd/eclipse/runtime/cmd/multiplerulesets/ruleset1.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
<description>Rules</description>
1010

11-
<exclude-pattern>.*/src/main/java/third/.*</exclude-pattern>
11+
<exclude-pattern>.*/src/main/java/net/sourceforge/pmd/eclipse/runtime/cmd/multiplerulesets/third/.*</exclude-pattern>
1212

1313
<rule ref="category/java/codestyle.xml/ClassNamingConventions">
1414
<priority>1</priority>

net.sourceforge.pmd.eclipse.plugin.test/src/main/resources/net/sourceforge/pmd/eclipse/runtime/cmd/multiplerulesets/ruleset2.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
<description>Custom rule</description>
1010

11-
<exclude-pattern>.*/src/main/java/second/.*</exclude-pattern>
11+
<exclude-pattern>.*/src/main/java/net/sourceforge/pmd/eclipse/runtime/cmd/multiplerulesets/second/.*</exclude-pattern>
1212

1313
<rule ref="category/java/design.xml/UseUtilityClass">
1414
<priority>1</priority>

net.sourceforge.pmd.eclipse.plugin.test/src/main/resources/net/sourceforge/pmd/eclipse/runtime/cmd/multiplerulesets/Second.java renamed to net.sourceforge.pmd.eclipse.plugin.test/src/main/resources/net/sourceforge/pmd/eclipse/runtime/cmd/multiplerulesets/second/Second.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
33
*/
44

5-
package second;
5+
package net.sourceforge.pmd.eclipse.runtime.cmd.multiplerulesets.second;
66

77
public class Second {
88

net.sourceforge.pmd.eclipse.plugin.test/src/main/resources/net/sourceforge/pmd/eclipse/runtime/cmd/multiplerulesets/Third.java renamed to net.sourceforge.pmd.eclipse.plugin.test/src/main/resources/net/sourceforge/pmd/eclipse/runtime/cmd/multiplerulesets/third/Third.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
33
*/
44

5-
package third;
5+
package net.sourceforge.pmd.eclipse.runtime.cmd.multiplerulesets.third;
66

77
public class Third {
88

0 commit comments

Comments
 (0)