|
13 | 13 | import org.hibernate.testing.orm.junit.SessionFactory;
|
14 | 14 | import org.hibernate.testing.orm.junit.SessionFactoryScope;
|
15 | 15 | import org.junit.jupiter.api.Test;
|
| 16 | +import org.junit.jupiter.params.ParameterizedTest; |
| 17 | +import org.junit.jupiter.params.provider.ValueSource; |
16 | 18 |
|
17 | 19 | import static org.assertj.core.api.Assertions.assertThat;
|
18 | 20 |
|
|
24 | 26 | @SuppressWarnings("JUnitMalformedDeclaration")
|
25 | 27 | public class SQLQueryParserUnitTests {
|
26 | 28 |
|
27 |
| - @Test |
| 29 | + @ParameterizedTest |
28 | 30 | @DomainModel
|
29 | 31 | @SessionFactory
|
30 | 32 | @RequiresDialect(H2Dialect.class)
|
31 |
| - void testJDBCEscapeSyntaxParsing(SessionFactoryScope scope) { |
| 33 | + @ValueSource(strings = { |
| 34 | + "{d '2025-06-18'}", |
| 35 | + "{t '14:00'}", |
| 36 | + "{t '14:00:00'}", |
| 37 | + "{ts '2025-06-18T14:00'}", |
| 38 | + "{ts '2025-06-18T14:00:00'}", |
| 39 | + "{ts '2025-06-18T14:00:00.123'}", |
| 40 | + "{ts '2025-06-18T14:00:00+01:00'}"}) |
| 41 | + void testJDBCEscapeSyntaxParsing(String variant, SessionFactoryScope scope) { |
32 | 42 | final SessionFactoryImplementor sessionFactory = scope.getSessionFactory();
|
33 |
| - final String sqlQuery = "select id, name from {h-domain}the_table where date = {d '2025-06-18'}"; |
| 43 | + final String sqlQuery = "select id, name from {h-domain}the_table where date = " + variant; |
34 | 44 |
|
35 | 45 | final String full = processSqlString( sqlQuery, "my_catalog", "my_schema", sessionFactory );
|
36 |
| - assertThat( full ).contains( "{d '2025-06-18'}" ); |
| 46 | + assertThat( full ).contains( variant ); |
37 | 47 |
|
38 | 48 | final String catalogOnly = processSqlString( sqlQuery, "my_catalog", null, sessionFactory );
|
39 |
| - assertThat( catalogOnly ).contains( "{d '2025-06-18'}" ); |
| 49 | + assertThat( catalogOnly ).contains( variant ); |
40 | 50 |
|
41 | 51 | final String schemaOnly = processSqlString( sqlQuery, null, "my_schema", sessionFactory );
|
42 |
| - assertThat( schemaOnly ).contains( "{d '2025-06-18'}" ); |
| 52 | + assertThat( schemaOnly ).contains( variant ); |
43 | 53 |
|
44 | 54 | final String none = processSqlString( sqlQuery, null, null, sessionFactory );
|
45 |
| - assertThat( none ).contains( "{d '2025-06-18'}" ); |
| 55 | + assertThat( none ).contains( variant ); |
46 | 56 | }
|
47 | 57 |
|
48 | 58 | private static String processSqlString(
|
|
0 commit comments