1111
1212import static org .junit .jupiter .api .Assertions .assertEquals ;
1313import static org .junit .jupiter .api .Assertions .assertFalse ;
14- import static org .junit .jupiter .api .Assertions .assertTrue ;
1514
1615import java .util .List ;
1716import net .sf .jsqlparser .JSQLParserException ;
1817import net .sf .jsqlparser .statement .Statements ;
1918import net .sf .jsqlparser .statement .select .PlainSelect ;
2019import net .sf .jsqlparser .statement .select .Select ;
2120import org .junit .jupiter .api .Test ;
21+ import org .junit .jupiter .params .ParameterizedTest ;
22+ import org .junit .jupiter .params .provider .ValueSource ;
2223
2324public class LeadingCommentsTest {
2425
@@ -29,12 +30,20 @@ public void blockCommentsBeforeStatementInSourceOrder() throws JSQLParserExcepti
2930 assertEquals (List .of ("/* keep orderby */" , "/*+ FULL(t) */" ), select .getLeadingComments ());
3031 }
3132
33+ @ ParameterizedTest
34+ @ ValueSource (strings = {"\n " , "\r \n " , "\r " })
35+ public void lineCommentsExcludeLineTerminators (String lineTerminator )
36+ throws JSQLParserException {
37+ Select select =
38+ (Select ) CCJSqlParserUtil .parse ("-- paging hint" + lineTerminator + "SELECT 1" );
39+ assertEquals (List .of ("-- paging hint" ), select .getLeadingComments ());
40+ }
41+
3242 @ Test
33- public void lineCommentBeforeStatement () throws JSQLParserException {
34- Select select = (Select ) CCJSqlParserUtil .parse ("-- paging hint\n SELECT 1" );
35- List <String > comments = select .getLeadingComments ();
36- assertEquals (1 , comments .size ());
37- assertTrue (comments .get (0 ).startsWith ("-- paging hint" ));
43+ public void mixedCommentsRetainExactImagesAndSourceOrder () throws JSQLParserException {
44+ Select select = (Select ) CCJSqlParserUtil
45+ .parse ("/* a */ -- b\r \n // c\r /* d */ SELECT 1" );
46+ assertEquals (List .of ("/* a */" , "-- b" , "// c" , "/* d */" ), select .getLeadingComments ());
3847 }
3948
4049 @ Test
0 commit comments