Skip to content

Commit 952208f

Browse files
committed
add tests for Expression.cast()
this was new in JPA 3.2
1 parent f47de21 commit 952208f

File tree

1 file changed

+50
-0
lines changed
  • hibernate-core/src/test/java/org/hibernate/orm/test/query/criteria

1 file changed

+50
-0
lines changed
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
/*
2+
* SPDX-License-Identifier: Apache-2.0
3+
* Copyright Red Hat Inc. and Hibernate Authors
4+
*/
5+
package org.hibernate.orm.test.query.criteria;
6+
7+
import org.hibernate.testing.orm.junit.EntityManagerFactoryScope;
8+
import org.hibernate.testing.orm.junit.Jpa;
9+
import org.junit.jupiter.api.Test;
10+
11+
import static org.junit.jupiter.api.Assertions.assertEquals;
12+
13+
@Jpa()
14+
class CastTest {
15+
@Test void testCastToString(EntityManagerFactoryScope scope) {
16+
scope.inEntityManager( entityManager -> {
17+
var builder = entityManager.getCriteriaBuilder();
18+
var query = builder.createQuery( Object[].class );
19+
query.select( builder.array(
20+
builder.literal( 69 ).cast( String.class ),
21+
builder.literal( 69L ).cast( String.class ),
22+
builder.literal( 1.0F ).cast( String.class ),
23+
builder.literal( 1.0D ).cast( String.class )
24+
) );
25+
var result = entityManager.createQuery( query ).getSingleResult();
26+
assertEquals( "69", result[0] );
27+
assertEquals( "69", result[1] );
28+
assertEquals("1.0", result[2] );
29+
assertEquals("1.0", result[3] );
30+
} );
31+
}
32+
33+
@Test void testCastFromString(EntityManagerFactoryScope scope) {
34+
scope.inEntityManager( entityManager -> {
35+
var builder = entityManager.getCriteriaBuilder();
36+
var query = builder.createQuery( Object[].class );
37+
query.select( builder.array(
38+
builder.literal( "69" ).cast( Integer.class ),
39+
builder.literal( "69" ).cast( Long.class ),
40+
builder.literal( "1.0" ).cast( Float.class ),
41+
builder.literal( "1.0" ).cast( Double.class )
42+
) );
43+
var result = entityManager.createQuery( query ).getSingleResult();
44+
assertEquals( 69, result[0] );
45+
assertEquals( 69L, result[1] );
46+
assertEquals(1.0F, result[2] );
47+
assertEquals(1.0D, result[3] );
48+
} );
49+
}
50+
}

0 commit comments

Comments
 (0)