package st.gravel.support.compiler; import static org.junit.Assert.*; import org.junit.Before; import org.junit.Test; import st.gravel.support.compiler.testtools.TestBootstrap; import st.gravel.support.jvm.runtime.ImageBootstrapper; import st.gravel.support.jvm.runtime.MethodTools; public class DynamicParserTest { @Before public void setUp() { TestBootstrap.getSingleton(); } @Test public void testAssignmentExpression() throws Throwable { Object appClass = ImageBootstrapper.systemMapping.singletonAtReferenceString_("st.gravel.support.compiler.ast.Parser"); Object result = MethodTools.perform(appClass, "parseExpression:", "3 + 4"); String prettySourceString = (String) MethodTools.perform(result, "prettySourceString"); assertEquals("3 + 4", prettySourceString); } @Test public void testStringLiteralExpression() throws Throwable { Object appClass = ImageBootstrapper.systemMapping.singletonAtReferenceString_("st.gravel.support.compiler.ast.Parser"); Object result = MethodTools.perform(appClass, "parseExpression:", "'fromage'"); String prettySourceString = (String) MethodTools.perform(result, "prettySourceString"); assertEquals("'fromage'", prettySourceString); } }