View Javadoc
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       * Test on Java file with default options.
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       * Test on Java file with Java version set to 1.4.
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  }