1 package net.sourceforge.pmd;
2
3 import static org.junit.Assert.assertEquals;
4
5 import java.io.File;
6
7 import junit.framework.JUnit4TestAdapter;
8 import net.sourceforge.pmd.lang.LanguageRegistry;
9 import net.sourceforge.pmd.lang.LanguageVersion;
10 import net.sourceforge.pmd.lang.LanguageVersionDiscoverer;
11 import net.sourceforge.pmd.lang.java.JavaLanguageModule;
12
13 import org.junit.Test;
14
15 public class LanguageVersionDiscovererTest {
16
17
18
19
20 @Test
21 public void testJavaFileUsingDefaults() {
22 LanguageVersionDiscoverer discoverer = new LanguageVersionDiscoverer();
23 File javaFile = new File("/path/to/MyClass.java");
24
25 LanguageVersion languageVersion = discoverer.getDefaultLanguageVersionForFile(javaFile);
26 assertEquals("LanguageVersion must be Java 1.8 !", LanguageRegistry.getLanguage(JavaLanguageModule.NAME)
27 .getVersion("1.8"), languageVersion);
28 }
29
30
31
32
33 @Test
34 public void testJavaFileUsing14() {
35 LanguageVersionDiscoverer discoverer = new LanguageVersionDiscoverer();
36 discoverer.setDefaultLanguageVersion(LanguageRegistry.getLanguage(JavaLanguageModule.NAME).getVersion("1.4"));
37 File javaFile = new File("/path/to/MyClass.java");
38
39 LanguageVersion languageVersion = discoverer.getDefaultLanguageVersionForFile(javaFile);
40 assertEquals("LanguageVersion must be Java 1.4!", LanguageRegistry.getLanguage(JavaLanguageModule.NAME)
41 .getVersion("1.4"), languageVersion);
42 }
43
44 @Test
45 public void testLanguageVersionDiscoverer() {
46 PMDConfiguration configuration = new PMDConfiguration();
47 LanguageVersionDiscoverer languageVersionDiscoverer = configuration.getLanguageVersionDiscoverer();
48 assertEquals("Default Java version", LanguageRegistry.getLanguage(JavaLanguageModule.NAME).getVersion("1.8"),
49 languageVersionDiscoverer.getDefaultLanguageVersion(LanguageRegistry
50 .getLanguage(JavaLanguageModule.NAME)));
51 configuration
52 .setDefaultLanguageVersion(LanguageRegistry.getLanguage(JavaLanguageModule.NAME).getVersion("1.5"));
53 assertEquals("Modified Java version", LanguageRegistry.getLanguage(JavaLanguageModule.NAME).getVersion("1.5"),
54 languageVersionDiscoverer.getDefaultLanguageVersion(LanguageRegistry
55 .getLanguage(JavaLanguageModule.NAME)));
56 }
57
58 public static junit.framework.Test suite() {
59 return new JUnit4TestAdapter(LanguageVersionDiscovererTest.class);
60 }
61 }