1 package net.sourceforge.pmd.ast;
2 import static org.junit.Assert.assertEquals;
3
4 import java.io.ByteArrayInputStream;
5 import java.io.InputStreamReader;
6
7 import net.sourceforge.pmd.PMD;
8 import net.sourceforge.pmd.lang.LanguageVersion;
9 import net.sourceforge.pmd.lang.LanguageVersionHandler;
10 import net.sourceforge.pmd.lang.java.ast.ASTCompilationUnit;
11 import net.sourceforge.pmd.lang.java.ast.ASTMethodDeclarator;
12
13 import org.junit.Ignore;
14 import org.junit.Test;
15
16 public class EncodingTest {
17
18 @Ignore("FIXME")
19 @Test
20 public void testDecodingOfUTF8() throws Throwable {
21
22
23 String encoding = "UTF-8";
24
25 String code = new String(TEST_UTF8.getBytes(), encoding);
26 InputStreamReader isr = new InputStreamReader(new ByteArrayInputStream(code.getBytes()));
27 LanguageVersionHandler languageVersionHandler = LanguageVersion.JAVA_14.getLanguageVersionHandler();
28 ASTCompilationUnit acu = (ASTCompilationUnit) languageVersionHandler.getParser(
29 languageVersionHandler.getDefaultParserOptions()).parse(null, isr);
30 String methodName = acu.findDescendantsOfType(ASTMethodDeclarator.class).get(0).getImage();
31 assertEquals(new String("é".getBytes(), encoding), methodName);
32 }
33
34 private static final String TEST_UTF8 =
35 "class Foo {" + PMD.EOL +
36 " void é() {}" + PMD.EOL +
37 " void fiddle() {}" + PMD.EOL +
38 "}";
39
40 public static junit.framework.Test suite() {
41 return new junit.framework.JUnit4TestAdapter(EncodingTest.class);
42 }
43 }