1
2
3
4 package net.sourceforge.pmd;
5
6 import static org.junit.Assert.assertEquals;
7 import static org.junit.Assert.assertTrue;
8
9 import java.io.IOException;
10 import java.net.URL;
11 import java.util.Properties;
12
13 import junit.framework.JUnit4TestAdapter;
14 import net.sourceforge.pmd.PMDConfiguration;
15 import net.sourceforge.pmd.PMD;
16 import net.sourceforge.pmd.RulePriority;
17 import net.sourceforge.pmd.lang.Language;
18 import net.sourceforge.pmd.lang.LanguageVersion;
19 import net.sourceforge.pmd.lang.LanguageVersionDiscoverer;
20 import net.sourceforge.pmd.renderers.CSVRenderer;
21 import net.sourceforge.pmd.renderers.Renderer;
22 import net.sourceforge.pmd.util.ClasspathClassLoader;
23
24 import org.junit.Test;
25
26 public class ConfigurationTest {
27
28 @Test
29 public void testSuppressMarker() {
30 PMDConfiguration configuration = new PMDConfiguration();
31 assertEquals("Default suppress marker", PMD.SUPPRESS_MARKER, configuration.getSuppressMarker());
32 configuration.setSuppressMarker("CUSTOM_MARKER");
33 assertEquals("Changed suppress marker", "CUSTOM_MARKER", configuration.getSuppressMarker());
34 }
35
36 @Test
37 public void testThreads() {
38 PMDConfiguration configuration = new PMDConfiguration();
39 assertEquals("Default threads", Runtime.getRuntime().availableProcessors(), configuration.getThreads());
40 configuration.setThreads(0);
41 assertEquals("Changed threads", 0, configuration.getThreads());
42 }
43
44 @Test
45 public void testClassLoader() throws IOException {
46 PMDConfiguration configuration = new PMDConfiguration();
47 assertEquals("Default ClassLoader", PMDConfiguration.class.getClassLoader(), configuration.getClassLoader());
48 configuration.prependClasspath("some.jar");
49 assertEquals("Prepended ClassLoader class", ClasspathClassLoader.class, configuration.getClassLoader()
50 .getClass());
51 URL[] urls = ((ClasspathClassLoader) configuration.getClassLoader()).getURLs();
52 assertEquals("urls length", 1, urls.length);
53 assertTrue("url[0]", urls[0].toString().endsWith("/some.jar"));
54 assertEquals("parent classLoader", PMDConfiguration.class.getClassLoader(), configuration.getClassLoader()
55 .getParent());
56 configuration.setClassLoader(null);
57 assertEquals("Revert to default ClassLoader", PMDConfiguration.class.getClassLoader(), configuration
58 .getClassLoader());
59 }
60
61 @Test
62 public void testLanguageVersionDiscoverer() {
63 PMDConfiguration configuration = new PMDConfiguration();
64 LanguageVersionDiscoverer languageVersionDiscoverer = configuration.getLanguageVersionDiscoverer();
65 assertEquals("Default Java version", LanguageVersion.JAVA_17, languageVersionDiscoverer
66 .getDefaultLanguageVersion(Language.JAVA));
67 configuration.setDefaultLanguageVersion(LanguageVersion.JAVA_15);
68 assertEquals("Modified Java version", LanguageVersion.JAVA_15, languageVersionDiscoverer
69 .getDefaultLanguageVersion(Language.JAVA));
70 }
71
72 @Test
73 public void testRuleSets() {
74 PMDConfiguration configuration = new PMDConfiguration();
75 assertEquals("Default RuleSets", null, configuration.getRuleSets());
76 configuration.setRuleSets("/rulesets/basic.xml");
77 assertEquals("Changed RuleSets", "/rulesets/basic.xml", configuration.getRuleSets());
78 }
79
80 @Test
81 public void testMinimumPriority() {
82 PMDConfiguration configuration = new PMDConfiguration();
83 assertEquals("Default minimum priority", RulePriority.LOW, configuration.getMinimumPriority());
84 configuration.setMinimumPriority(RulePriority.HIGH);
85 assertEquals("Changed minimum priority", RulePriority.HIGH, configuration.getMinimumPriority());
86 }
87
88 @Test
89 public void testSourceEncoding() {
90 PMDConfiguration configuration = new PMDConfiguration();
91 assertEquals("Default source encoding", System.getProperty("file.encoding"), configuration.getSourceEncoding());
92 configuration.setSourceEncoding("some_other_encoding");
93 assertEquals("Changed source encoding", "some_other_encoding", configuration.getSourceEncoding());
94 }
95
96 @Test
97 public void testInputPaths() {
98 PMDConfiguration configuration = new PMDConfiguration();
99 assertEquals("Default input paths", null, configuration.getInputPaths());
100 configuration.setInputPaths("a,b,c");
101 assertEquals("Changed input paths", "a,b,c", configuration.getInputPaths());
102 }
103
104 @Test
105 public void testReportShortNames() {
106 PMDConfiguration configuration = new PMDConfiguration();
107 assertEquals("Default report short names", false, configuration.isReportShortNames());
108 configuration.setReportShortNames(true);
109 assertEquals("Changed report short names", true, configuration.isReportShortNames());
110 }
111
112 @Test
113 public void testReportFormat() {
114 PMDConfiguration configuration = new PMDConfiguration();
115 assertEquals("Default report format", null, configuration.getReportFormat());
116 configuration.setReportFormat("csv");
117 assertEquals("Changed report format", "csv", configuration.getReportFormat());
118 }
119
120 @Test
121 public void testCreateRenderer() {
122 PMDConfiguration configuration = new PMDConfiguration();
123 configuration.setReportFormat("csv");
124 Renderer renderer = configuration.createRenderer();
125 assertEquals("Renderer class", CSVRenderer.class, renderer.getClass());
126 assertEquals("Default renderer show suppressed violations", false, renderer.isShowSuppressedViolations());
127
128 configuration.setShowSuppressedViolations(true);
129 renderer = configuration.createRenderer();
130 assertEquals("Renderer class", CSVRenderer.class, renderer.getClass());
131 assertEquals("Changed renderer show suppressed violations", true, renderer.isShowSuppressedViolations());
132 }
133
134 @Test
135 public void testReportFile() {
136 PMDConfiguration configuration = new PMDConfiguration();
137 assertEquals("Default report file", null, configuration.getReportFile());
138 configuration.setReportFile("somefile");
139 assertEquals("Changed report file", "somefile", configuration.getReportFile());
140 }
141
142 @Test
143 public void testShowSuppressedViolations() {
144 PMDConfiguration configuration = new PMDConfiguration();
145 assertEquals("Default show suppressed violations", false, configuration.isShowSuppressedViolations());
146 configuration.setShowSuppressedViolations(true);
147 assertEquals("Changed show suppressed violations", true, configuration.isShowSuppressedViolations());
148 }
149
150 @Test
151 public void testReportProperties() {
152 PMDConfiguration configuration = new PMDConfiguration();
153 assertEquals("Default report properties size", 0, configuration.getReportProperties().size());
154 configuration.getReportProperties().put("key", "value");
155 assertEquals("Changed report properties size", 1, configuration.getReportProperties().size());
156 assertEquals("Changed report properties value", "value", configuration.getReportProperties().get("key"));
157 configuration.setReportProperties(new Properties());
158 assertEquals("Replaced report properties size", 0, configuration.getReportProperties().size());
159 }
160
161 @Test
162 public void testDebug() {
163 PMDConfiguration configuration = new PMDConfiguration();
164 assertEquals("Default debug", false, configuration.isDebug());
165 configuration.setDebug(true);
166 assertEquals("Changed debug", true, configuration.isDebug());
167 }
168
169 @Test
170 public void testStressTest() {
171 PMDConfiguration configuration = new PMDConfiguration();
172 assertEquals("Default stress test", false, configuration.isStressTest());
173 configuration.setStressTest(true);
174 assertEquals("Changed stress test", true, configuration.isStressTest());
175 }
176
177 @Test
178 public void testBenchmark() {
179 PMDConfiguration configuration = new PMDConfiguration();
180 assertEquals("Default benchmark", false, configuration.isBenchmark());
181 configuration.setBenchmark(true);
182 assertEquals("Changed benchmark", true, configuration.isBenchmark());
183 }
184
185 public static junit.framework.Test suite() {
186 return new JUnit4TestAdapter(ConfigurationTest.class);
187 }
188 }