package net.sf.jsqlparser.statement; import java.io.StringReader; import net.sf.jsqlparser.JSQLParserException; import net.sf.jsqlparser.parser.CCJSqlParser; import net.sf.jsqlparser.parser.CCJSqlParserUtil; import net.sf.jsqlparser.parser.ParseException; import net.sf.jsqlparser.statement.select.Select; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import static org.junit.Assert.*; /** * * @author toben */ public class StatementsTest { public StatementsTest() { } @BeforeClass public static void setUpClass() { } @AfterClass public static void tearDownClass() { } @Before public void setUp() { } @After public void tearDown() { } @Test public void testStatements() throws JSQLParserException { String sqls = "select * from mytable; select * from mytable2;"; Statements parseStatements = CCJSqlParserUtil.parseStatements(sqls); assertEquals("SELECT * FROM mytable;\nSELECT * FROM mytable2;\n", parseStatements.toString()); assertTrue(parseStatements.getStatements().get(0) instanceof Select); assertTrue(parseStatements.getStatements().get(1) instanceof Select); } @Test public void testStatementsProblem() throws JSQLParserException { String sqls = ";;select * from mytable;;select * from mytable2;;;"; Statements parseStatements = CCJSqlParserUtil.parseStatements(sqls); assertEquals("SELECT * FROM mytable;\nSELECT * FROM mytable2;\n", parseStatements.toString()); assertTrue(parseStatements.getStatements().get(0) instanceof Select); assertTrue(parseStatements.getStatements().get(1) instanceof Select); } @Test public void testStatementsErrorRecovery() throws JSQLParserException, ParseException { String sqls = "select * from mytable; select * from;"; CCJSqlParser parser = new CCJSqlParser(new StringReader(sqls)); parser.setErrorRecovery(true); Statements parseStatements = parser.Statements(); assertEquals(2, parseStatements.getStatements().size()); assertTrue(parseStatements.getStatements().get(0) instanceof Select); assertNull(parseStatements.getStatements().get(1)); } @Test public void testStatementsErrorRecovery2() throws JSQLParserException, ParseException { String sqls = "select * from1 table;"; CCJSqlParser parser = new CCJSqlParser(new StringReader(sqls)); parser.setErrorRecovery(true); Statements parseStatements = parser.Statements(); assertEquals(1, parseStatements.getStatements().size()); assertTrue(parseStatements.getStatements().get(0) instanceof Select); assertEquals(1, parser.getParseErrors().size()); } @Test public void testStatementsErrorRecovery3() throws JSQLParserException, ParseException { String sqls = "select * from mytable; select * from;select * from mytable2"; CCJSqlParser parser = new CCJSqlParser(new StringReader(sqls)); parser.setErrorRecovery(true); Statements parseStatements = parser.Statements(); assertEquals(2, parseStatements.getStatements().size()); assertTrue(parseStatements.getStatements().get(0) instanceof Select); assertNull(parseStatements.getStatements().get(1)); assertEquals(2, parser.getParseErrors().size()); } }