Skip to content

Commit fa2e481

Browse files
cigalygavinking
authored andcommitted
HHH-18708 Added two new tests to existing class
1 parent bfa7102 commit fa2e481

File tree

1 file changed

+55
-2
lines changed
  • hibernate-core/src/test/java/org/hibernate/orm/test/hql

1 file changed

+55
-2
lines changed

hibernate-core/src/test/java/org/hibernate/orm/test/hql/EnumTest.java

Lines changed: 55 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44
*/
55
package org.hibernate.orm.test.hql;
66

7-
import java.util.List;
8-
97
import org.hibernate.testing.orm.domain.gambit.EntityOfBasics;
108
import org.hibernate.testing.orm.junit.DomainModel;
119
import org.hibernate.testing.orm.junit.Jira;
@@ -14,6 +12,8 @@
1412
import org.junit.jupiter.api.BeforeAll;
1513
import org.junit.jupiter.api.Test;
1614

15+
import java.util.List;
16+
1717
import static org.assertj.core.api.Assertions.assertThat;
1818

1919
@DomainModel(annotatedClasses = {
@@ -22,6 +22,7 @@
2222
})
2323
@SessionFactory
2424
@Jira("https://hibernate.atlassian.net/browse/HHH-16861")
25+
@Jira("https://hibernate.atlassian.net/browse/HHH-18708")
2526
public class EnumTest {
2627

2728

@@ -97,4 +98,56 @@ public void testOrdinalFunctionOnStringEnum(SessionFactoryScope scope) {
9798

9899
}
99100

101+
@Test
102+
public void testStringFunctionOnStringEnum(SessionFactoryScope scope) {
103+
scope.inTransaction( session -> {
104+
105+
List<String> femaleStringFunction = session.createQuery(
106+
"select string(gender) " +
107+
"from EntityOfBasics e " +
108+
"where e.gender = :gender",
109+
String.class
110+
)
111+
.setParameter( "gender", EntityOfBasics.Gender.FEMALE )
112+
.getResultList();
113+
114+
List<String> femaleWithCast = session.createQuery(
115+
"select cast(e.gender as String) " +
116+
"from EntityOfBasics e " +
117+
"where e.gender = :gender",
118+
String.class
119+
)
120+
.setParameter( "gender", EntityOfBasics.Gender.FEMALE )
121+
.getResultList();
122+
123+
assertThat( femaleStringFunction ).hasSize( 1 );
124+
assertThat( femaleStringFunction ).hasSameElementsAs( femaleWithCast );
125+
} );
126+
127+
}
128+
129+
@Test
130+
public void testStringFunctionOnOrdinalEnum(SessionFactoryScope scope) {
131+
scope.inTransaction( session -> {
132+
//tag::hql-string-function-example[]
133+
// enum Gender {
134+
// MALE,
135+
// FEMALE,
136+
// OTHER
137+
//}
138+
List<String> femaleStringFromString = session.createQuery(
139+
"select string(ordinalGender)" +
140+
"from EntityOfBasics e " +
141+
"where e.ordinalGender = :gender",
142+
String.class )
143+
.setParameter( "gender", EntityOfBasics.Gender.FEMALE )
144+
.getResultList();
145+
// This will return List.of(1)
146+
//end::hql-string-function-example[]
147+
assertThat( femaleStringFromString ).hasSize( 1 );
148+
assertThat( femaleStringFromString ).hasSameElementsAs( List.of( "FEMALE" ) );
149+
} );
150+
151+
}
152+
100153
}

0 commit comments

Comments
 (0)