|
41 | 41 | import java.util.concurrent.TimeUnit; |
42 | 42 | import java.util.concurrent.TimeoutException; |
43 | 43 | import java.util.concurrent.atomic.AtomicBoolean; |
| 44 | +import java.util.function.Consumer; |
44 | 45 |
|
45 | 46 | import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; |
46 | 47 | import static org.junit.jupiter.api.Assertions.assertEquals; |
@@ -578,6 +579,44 @@ void testSingleStatementWithEmptyLines() throws JSQLParserException { |
578 | 579 | + "where id=?", true); |
579 | 580 | } |
580 | 581 |
|
| 582 | + @Test |
| 583 | + void testBlankLinesAsSeparatorDisabled() throws JSQLParserException { |
| 584 | + Consumer<CCJSqlParser> blankLinesAsWhitespace = p -> p.withBlankLinesAsSeparator(false); |
| 585 | + |
| 586 | + assertEquals("SELECT a FROM dual WHERE x = ? AND y = ?", |
| 587 | + CCJSqlParserUtil.parse("SELECT a FROM dual WHERE x = ?\n\n\n AND y = ?", |
| 588 | + blankLinesAsWhitespace).toString()); |
| 589 | + assertEquals("SELECT a, b FROM t", |
| 590 | + CCJSqlParserUtil.parse("SELECT a,\n\n\n\nb FROM t", blankLinesAsWhitespace) |
| 591 | + .toString()); |
| 592 | + assertEquals("SELECT a FROM t WHERE a > 1", |
| 593 | + CCJSqlParserUtil.parse("SELECT a FROM t\n\n\nWHERE a > 1", blankLinesAsWhitespace) |
| 594 | + .toString()); |
| 595 | + assertEquals("SELECT a FROM t UNION SELECT a FROM u", |
| 596 | + CCJSqlParserUtil.parse("SELECT a FROM t\n\n\n\n\nUNION\n\n\nSELECT a FROM u", |
| 597 | + blankLinesAsWhitespace).toString()); |
| 598 | + assertEquals("SELECT a FROM t JOIN u ON t.id = u.id", |
| 599 | + CCJSqlParserUtil.parse("SELECT a FROM t\n\n\nJOIN u ON t.id = u.id", |
| 600 | + blankLinesAsWhitespace).toString()); |
| 601 | + assertEquals("SELECT a FROM dual", |
| 602 | + CCJSqlParserUtil.parse("SELECT a FROM dual\n\n\n", blankLinesAsWhitespace) |
| 603 | + .toString()); |
| 604 | + assertEquals("SELECT 'a\n\n\nb' FROM dual", |
| 605 | + CCJSqlParserUtil.parse("SELECT 'a\n\n\nb' FROM dual", blankLinesAsWhitespace) |
| 606 | + .toString()); |
| 607 | + |
| 608 | + assertEquals(1, CCJSqlParserUtil.parseStatements( |
| 609 | + "SELECT a FROM t\n\n\nWHERE a > 1", blankLinesAsWhitespace).size()); |
| 610 | + assertEquals(3, CCJSqlParserUtil.parseStatements( |
| 611 | + "SELECT 1 FROM dual;\n\n\nSELECT 2 FROM dual\ngo\nSELECT 3 FROM dual\n/\n", |
| 612 | + blankLinesAsWhitespace).size()); |
| 613 | + |
| 614 | + JSQLParserException exception = assertThrows(JSQLParserException.class, |
| 615 | + () -> CCJSqlParserUtil.parse("SELECT a\n\n\n\nFROM", blankLinesAsWhitespace)); |
| 616 | + assertTrue(exception.getCause().getMessage().contains("at line 5, column 1"), |
| 617 | + exception.getCause().getMessage()); |
| 618 | + } |
| 619 | + |
581 | 620 | @Test |
582 | 621 | public void testHashLineCommentsFeature() throws Exception { |
583 | 622 | // with the flag: MySQL line comments, `#` to end of line, |
|
0 commit comments