StatementSeparatorTest.java
/*-
* #%L
* JSQLParser library
* %%
* Copyright (C) 2004 - 2023 JSQLParser
* %%
* Dual licensed under GNU LGPL 2.1 or Apache License 2.0
* #L%
*/
package net.sf.jsqlparser.statement;
import net.sf.jsqlparser.JSQLParserException;
import net.sf.jsqlparser.parser.CCJSqlParserUtil;
import net.sf.jsqlparser.test.TestUtils;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
public class StatementSeparatorTest {
@Test
void testDoubleNewLine() throws JSQLParserException {
String sqlStr =
"SELECT * FROM DUAL\n\n\nSELECT * FROM DUAL\n\n\n\nSELECT * FROM dual\n\n\n\n\nSELECT * FROM dual";
Statements statements = CCJSqlParserUtil.parseStatements(sqlStr);
Assertions.assertEquals(4, statements.size());
}
@Test
void testNewLineSlash() throws JSQLParserException {
String sqlStr =
"SELECT * FROM DUAL\n\n\nSELECT * FROM DUAL\n/\nSELECT * FROM dual\n/\n\nSELECT * FROM dual";
Statements statements = CCJSqlParserUtil.parseStatements(sqlStr);
Assertions.assertEquals(4, statements.size());
}
@Test
void testNewLineGo() throws JSQLParserException {
String sqlStr =
"SELECT * FROM DUAL\n\n\nSELECT * FROM DUAL\nGO\nSELECT * FROM dual\ngo\n\nSELECT * FROM dual\ngo";
Statements statements = CCJSqlParserUtil.parseStatements(sqlStr);
Assertions.assertEquals(4, statements.size());
}
@Test
void testNewLineNotGoIssue() throws JSQLParserException {
String sqlStr =
"select name,\ngoods from test_table";
Statements statements = CCJSqlParserUtil.parseStatements(sqlStr);
Assertions.assertEquals(1, statements.size());
}
@Test
void testOracleBlock() throws JSQLParserException {
String sqlStr = "BEGIN\n" + "\n" + "SELECT * FROM TABLE;\n" + "\n" + "END\n" + "/\n";
Statement statement = TestUtils.assertSqlCanBeParsedAndDeparsed(sqlStr, true);
}
@Test
void testMSSQLBlock() throws JSQLParserException {
String sqlStr = "create view MyView1 as\n" + "select Id,Name from table1\n" + "go\n"
+ "create view MyView2 as\n" + "select Id,Name from table1\n" + "go";
Statements statements = CCJSqlParserUtil.parseStatements(sqlStr);
Assertions.assertEquals(2, statements.size());
}
@Test
void testSOQLIncludes() throws JSQLParserException {
String sqlStr =
"select name,\ngoods from test_table where option includes ('option1', 'option2')";
Statement statement = TestUtils.assertSqlCanBeParsedAndDeparsed(sqlStr, true);
}
@Test
void testSOQLExcludes() throws JSQLParserException {
String sqlStr =
"select name,\ngoods from test_table where option excludes ('option1', 'option2')";
Statement statement = TestUtils.assertSqlCanBeParsedAndDeparsed(sqlStr, true);
}
}