test for stuff that Max has already implemented
This commit is contained in:
@@ -0,0 +1,8 @@
|
|||||||
|
class SimpleClass() {
|
||||||
|
fun foo() = 610
|
||||||
|
}
|
||||||
|
|
||||||
|
fun test() {
|
||||||
|
val c = new SimpleClass()
|
||||||
|
return c.foo()
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
class SimpleClass {
|
||||||
|
this() {}
|
||||||
|
|
||||||
|
fun foo() = 610
|
||||||
|
}
|
||||||
|
|
||||||
|
fun test() {
|
||||||
|
val c = new SimpleClass()
|
||||||
|
return c.foo()
|
||||||
|
}
|
||||||
@@ -24,10 +24,20 @@ public class ClassGenTest extends CodegenTestCase {
|
|||||||
checkInterface(aClass, List.class);
|
checkInterface(aClass, List.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void checkInterface(Class aClass, Class ifs) {
|
private static void checkInterface(Class aClass, Class ifs) {
|
||||||
for (Class anInterface : aClass.getInterfaces()) {
|
for (Class anInterface : aClass.getInterfaces()) {
|
||||||
if (anInterface == ifs) return;
|
if (anInterface == ifs) return;
|
||||||
}
|
}
|
||||||
fail(aClass.getName() + " must have " + ifs.getName() + " in its interfaces");
|
fail(aClass.getName() + " must have " + ifs.getName() + " in its interfaces");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testNewInstanceExplicitConstructor() throws Exception {
|
||||||
|
loadFile("newInstanceDefaultConstructor.jet");
|
||||||
|
final Codegens codegens = generateClassesInFile();
|
||||||
|
loadImplementationClass(codegens, "SimpleClass");
|
||||||
|
Class ns = loadRootNamespaceClass(codegens);
|
||||||
|
final Method method = findMethodByName(ns, "test");
|
||||||
|
final Integer returnValue = (Integer) method.invoke(null);
|
||||||
|
assertEquals(610, returnValue.intValue());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,10 +60,14 @@ public abstract class CodegenTestCase extends LightCodeInsightFixtureTestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected Class generateNamespaceClass() {
|
protected Class generateNamespaceClass() {
|
||||||
|
Codegens state = generateClassesInFile();
|
||||||
|
return loadRootNamespaceClass(state);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected Class loadRootNamespaceClass(Codegens state) {
|
||||||
JetFile jetFile = (JetFile) myFixture.getFile();
|
JetFile jetFile = (JetFile) myFixture.getFile();
|
||||||
final JetNamespace namespace = jetFile.getRootNamespace();
|
final JetNamespace namespace = jetFile.getRootNamespace();
|
||||||
String fqName = NamespaceCodegen.getJVMClassName(namespace.getFQName()).replace("/", ".");
|
String fqName = NamespaceCodegen.getJVMClassName(namespace.getFQName()).replace("/", ".");
|
||||||
Codegens state = generateClassesInFile();
|
|
||||||
return loadClass(fqName, state);
|
return loadClass(fqName, state);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user