View Javadoc
1   /**
2    * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
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 }