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);
|
||||
}
|
||||
|
||||
private void checkInterface(Class aClass, Class ifs) {
|
||||
private static void checkInterface(Class aClass, Class ifs) {
|
||||
for (Class anInterface : aClass.getInterfaces()) {
|
||||
if (anInterface == ifs) return;
|
||||
}
|
||||
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() {
|
||||
Codegens state = generateClassesInFile();
|
||||
return loadRootNamespaceClass(state);
|
||||
}
|
||||
|
||||
protected Class loadRootNamespaceClass(Codegens state) {
|
||||
JetFile jetFile = (JetFile) myFixture.getFile();
|
||||
final JetNamespace namespace = jetFile.getRootNamespace();
|
||||
String fqName = NamespaceCodegen.getJVMClassName(namespace.getFQName()).replace("/", ".");
|
||||
Codegens state = generateClassesInFile();
|
||||
return loadClass(fqName, state);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user