return 42

This commit is contained in:
Dmitry Jemerov
2011-02-25 19:14:11 +03:00
parent 8f1f89cca8
commit 8e6c2995d0
4 changed files with 57 additions and 4 deletions
@@ -25,12 +25,25 @@ public class NamespaceGenTest extends LightCodeInsightFixtureTestCase {
System.out.println(text);
final Class aClass = generateToClass(namespace, codegen);
final Method[] methods = aClass.getMethods();
final Method main = methods[0];
final Method main = firstMethod(aClass);
Object[] args = new Object[] { new String[0] };
main.invoke(null, args);
}
public void testReturnOne() throws Exception {
myFixture.configureByFile(JetParsingTest.getTestDataDir() + "/codegen/returnOne.jet");
JetFile jetFile = (JetFile) myFixture.getFile();
JetNamespace namespace = jetFile.getRootNamespace();
NamespaceCodegen codegen = new NamespaceCodegen();
final String text = generateToText(namespace, codegen);
System.out.println(text);
final Class aClass = generateToClass(namespace, codegen);
final Method main = firstMethod(aClass);
final Object returnValue = main.invoke(null, new Object[0]);
assertEquals(new Integer(42), returnValue);
}
private static String generateToText(JetNamespace namespace, NamespaceCodegen codegen) {
StringWriter writer = new StringWriter();
codegen.generate(namespace, new TraceClassVisitor(new PrintWriter(writer)));
@@ -46,6 +59,10 @@ public class NamespaceGenTest extends LightCodeInsightFixtureTestCase {
return aClass;
}
private static Method firstMethod(Class aClass) {
return aClass.getMethods()[0];
}
private static class MyClassLoader extends ClassLoader {
public MyClassLoader(ClassLoader parent) {
super(parent);