Skip to content

Commit 46293db

Browse files
committed
HHH-18450 Add test for issue
1 parent acfc793 commit 46293db

File tree

1 file changed

+94
-0
lines changed

1 file changed

+94
-0
lines changed
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
/*
2+
* SPDX-License-Identifier: LGPL-2.1-or-later
3+
* Copyright Red Hat Inc. and Hibernate Authors
4+
*/
5+
package org.hibernate.orm.test.hql;
6+
7+
import org.hibernate.testing.orm.domain.gambit.BasicEntity;
8+
import org.hibernate.testing.orm.junit.DomainModel;
9+
import org.hibernate.testing.orm.junit.Jira;
10+
import org.hibernate.testing.orm.junit.SessionFactory;
11+
import org.hibernate.testing.orm.junit.SessionFactoryScope;
12+
import org.junit.jupiter.api.AfterAll;
13+
import org.junit.jupiter.api.BeforeAll;
14+
import org.junit.jupiter.api.Test;
15+
16+
import static org.assertj.core.api.Assertions.assertThat;
17+
18+
/**
19+
* @author Marco Belladelli
20+
*/
21+
@DomainModel( annotatedClasses = BasicEntity.class )
22+
@SessionFactory
23+
@Jira( "https://hibernate.atlassian.net/browse/HHH-18450" )
24+
public class SingleSelectionArrayResultTest {
25+
@Test
26+
public void testArrayResult(SessionFactoryScope scope) {
27+
scope.inTransaction( session -> {
28+
assertThat( session.createQuery(
29+
"select 1",
30+
Object[].class
31+
).getSingleResult() ).containsExactly( 1 );
32+
assertThat( session.createQuery(
33+
"select cast(1 as integer)",
34+
Object[].class
35+
).getSingleResult() ).containsExactly( 1 );
36+
assertThat( session.createSelectionQuery(
37+
"select id from BasicEntity",
38+
Object[].class
39+
).getSingleResult() ).containsExactly( 1 );
40+
assertThat( session.createSelectionQuery(
41+
"select cast(id as integer) from BasicEntity",
42+
Object[].class
43+
).getSingleResult() ).containsExactly( 1 );
44+
assertThat( session.createSelectionQuery(
45+
"select ?1",
46+
Object[].class
47+
).setParameter( 1, 1 ).getSingleResult() ).containsExactly( 1 );
48+
assertThat( session.createQuery(
49+
"select cast(:p1 as integer)",
50+
Object[].class
51+
).setParameter( "p1", 1 ).getSingleResult() ).containsExactly( 1 );
52+
} );
53+
}
54+
55+
@Test
56+
public void testNormalResult(SessionFactoryScope scope) {
57+
scope.inTransaction( session -> {
58+
assertThat( session.createQuery(
59+
"select 1",
60+
Object.class
61+
).getSingleResult() ).isInstanceOf( Integer.class ).isEqualTo( 1 );
62+
assertThat( session.createQuery(
63+
"select cast(1 as integer)",
64+
Object.class
65+
).getSingleResult() ).isInstanceOf( Integer.class ).isEqualTo( 1 );
66+
assertThat( session.createSelectionQuery(
67+
"select id from BasicEntity",
68+
Object.class
69+
).getSingleResult() ).isInstanceOf( Integer.class ).isEqualTo( 1 );
70+
assertThat( session.createSelectionQuery(
71+
"select cast(id as integer) from BasicEntity",
72+
Object.class
73+
).getSingleResult() ).isInstanceOf( Integer.class ).isEqualTo( 1 );
74+
assertThat( session.createSelectionQuery(
75+
"select ?1",
76+
Object.class
77+
).setParameter( 1, 1 ).getSingleResult() ).isInstanceOf( Integer.class ).isEqualTo( 1 );
78+
assertThat( session.createQuery(
79+
"select cast(:p1 as integer)",
80+
Object.class
81+
).setParameter( "p1", 1 ).getSingleResult() ).isInstanceOf( Integer.class ).isEqualTo( 1 );
82+
} );
83+
}
84+
85+
@BeforeAll
86+
public void setUp(SessionFactoryScope scope) {
87+
scope.inTransaction( session -> session.persist( new BasicEntity( 1, "entity_1" ) ) );
88+
}
89+
90+
@AfterAll
91+
public void tearDown(SessionFactoryScope scope) {
92+
scope.getSessionFactory().getSchemaManager().truncateMappedObjects();
93+
}
94+
}

0 commit comments

Comments
 (0)