|
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 | @Test |
|
0 commit comments