jdk injected to tests

This commit is contained in:
Sergey Ignatov
2011-11-04 14:30:18 +04:00
parent 7db775084c
commit 541a76caef
5 changed files with 32 additions and 4 deletions
Binary file not shown.
BIN
View File
Binary file not shown.
+22 -1
View File
@@ -56,10 +56,31 @@ public class Converter {
if (psiClass.isInterface()) if (psiClass.isInterface())
return new Trait(name, modifiers, typeParameters, extendsTypes, implementsTypes, innerClasses, methods, fields); return new Trait(name, modifiers, typeParameters, extendsTypes, implementsTypes, innerClasses, methods, fields);
if (psiClass.isEnum()) if (psiClass.isEnum())
return new Enum(name, modifiers, typeParameters, extendsTypes, implementsTypes, innerClasses, methods, fields); return new Enum(name, modifiers, typeParameters, new LinkedList<Type>(), implementsTypes, innerClasses, methods, fieldsToFieldListForEnums(psiClass.getAllFields()));
return new Class(name, modifiers, typeParameters, extendsTypes, implementsTypes, innerClasses, methods, fields); return new Class(name, modifiers, typeParameters, extendsTypes, implementsTypes, innerClasses, methods, fields);
} }
// TODO: hack for enums
private static List<Field> fieldsToFieldListForEnums(PsiField[] fields) {
List<Field> result = new LinkedList<Field>();
for (PsiField f : fields) {
if ((f.getName().equals("ordinal")
&& f.getType().getCanonicalText().equals("int")
&& f.hasModifierProperty(PsiModifier.PRIVATE)
&& f.hasModifierProperty(PsiModifier.FINAL)
) ||
(f.getName().equals("name")
&& f.getType().getCanonicalText().equals("java.lang.String")
&& f.hasModifierProperty(PsiModifier.PRIVATE)
&& f.hasModifierProperty(PsiModifier.FINAL)
))
continue;
result.add(fieldToField(f));
}
return result;
}
private static List<Field> fieldsToFieldList(PsiField[] fields) { private static List<Field> fieldsToFieldList(PsiField[] fields) {
List<Field> result = new LinkedList<Field>(); List<Field> result = new LinkedList<Field>();
for (PsiField f : fields) { for (PsiField f : fields) {
@@ -40,7 +40,7 @@ public abstract class JetTestCaseBase extends LightDaemonAnalyzerTestCase {
} }
private static Sdk jdkFromIdeaHome() { private static Sdk jdkFromIdeaHome() {
return new JavaSdkImpl().createJdk("JDK", "compiler/testData/mockJDK-1.7/jre", true); return new JavaSdkImpl().createJdk("JDK", "jre", true);
} }
@Override @Override
+8 -1
View File
@@ -41,7 +41,7 @@ public class EnumTest extends JetTestCaseBase {
"RED\n" + "RED\n" +
"YELLOW\n" + "YELLOW\n" +
"BLUE\n" + "BLUE\n" +
"fun toString() : String? {\n" + "override fun toString() : String? {\n" +
"return \"COLOR\"\n" + "return \"COLOR\"\n" +
"}\n" + "}\n" +
"}" "}"
@@ -84,6 +84,13 @@ public class EnumTest extends JetTestCaseBase {
); );
} }
public void testEnumWithNameField() throws Exception {
Assert.assertEquals(
classToKotlin("enum E { I; private String name; }"),
"enum E {\nI\nprivate var name : String?\n}"
);
}
public void testEnumImplementsSeveralInterfaces() throws Exception { public void testEnumImplementsSeveralInterfaces() throws Exception {
Assert.assertEquals( Assert.assertEquals(
classToSingleLineKotlin("enum A implements I0, I1, I2 {}"), classToSingleLineKotlin("enum A implements I0, I1, I2 {}"),