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