|  | 
| 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