package org.develnext.jphp.core.syntax; import org.junit.Assert; import org.junit.FixMethodOrder; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; import org.junit.runners.MethodSorters; import php.runtime.common.LangMode; import php.runtime.exceptions.support.ErrorException; import php.runtime.env.Context; import org.develnext.jphp.core.tokenizer.Tokenizer; import org.develnext.jphp.core.tokenizer.token.stmt.ExprStmtToken; import java.io.IOException; @RunWith(JUnit4.class) @FixMethodOrder(MethodSorters.NAME_ASCENDING) public class SyntaxAnalyzerTest extends AbstractSyntaxTestCase { @Test public void testSimple() throws IOException { Tokenizer tokenizer = new Tokenizer(new Context("foobar;")); SyntaxAnalyzer analyzer = new SyntaxAnalyzer(environment, tokenizer); Assert.assertTrue(analyzer.getTree().size() == 1); Assert.assertTrue(analyzer.getTree().listIterator().next() instanceof ExprStmtToken); } @Test(expected = ErrorException.class) public void testUnexpectedEnd() throws IOException { Tokenizer tokenizer = new Tokenizer(new Context("foobar")); environment.scope.setLangMode(LangMode.DEFAULT); new SyntaxAnalyzer(environment, tokenizer); } }