99import jakarta .persistence .criteria .Root ;
1010
1111import org .hibernate .Session ;
12- import org .hibernate .cfg .Configuration ;
1312import org .hibernate .cfg .Environment ;
13+ import org .hibernate .testing .orm .junit .DomainModel ;
14+ import org .hibernate .testing .orm .junit .LoggingInspections ;
15+ import org .hibernate .testing .orm .junit .LoggingInspectionsScope ;
16+ import org .hibernate .testing .orm .junit .ServiceRegistry ;
17+ import org .hibernate .testing .orm .junit .SessionFactory ;
18+ import org .hibernate .testing .orm .junit .SessionFactoryScope ;
19+ import org .hibernate .testing .orm .junit .Setting ;
1420import org .hibernate .type .descriptor .JdbcBindingLogging ;
1521import org .hibernate .type .descriptor .JdbcExtractingLogging ;
1622
1723import org .hibernate .testing .orm .junit .JiraKey ;
18- import org .hibernate .testing .junit4 .BaseCoreFunctionalTestCase ;
19- import org .hibernate .testing .logger .LoggerInspectionRule ;
20- import org .hibernate .testing .logger .Triggerable ;
21- import org .junit .Rule ;
22- import org .junit .Test ;
24+ import org .junit .jupiter .api .Test ;
2325
24- import org .jboss .logging .Logger ;
26+ import org .junit .jupiter .api .AfterEach ;
27+ import org .junit .jupiter .api .BeforeEach ;
2528
26-
27- import static org .hibernate .testing .transaction .TransactionUtil .doInHibernate ;
28- import static org .junit .Assert .assertEquals ;
29- import static org .junit .Assert .assertTrue ;
29+ import static org .junit .jupiter .api .Assertions .assertEquals ;
30+ import static org .junit .jupiter .api .Assertions .assertTrue ;
3031
3132/**
3233 * @author Brett Meyer
3334 */
34- public class EnumTypeTest extends BaseCoreFunctionalTestCase {
35-
36- @ Rule
37- public LoggerInspectionRule binderLogInspection =
38- new LoggerInspectionRule ( Logger .getLogger ( JdbcBindingLogging .NAME ) );
39-
40- @ Rule
41- public LoggerInspectionRule extractorLogInspection =
42- new LoggerInspectionRule ( Logger .getLogger ( JdbcExtractingLogging .NAME ) );
35+ @ DomainModel (xmlMappings = {"org/hibernate/orm/test/mapping/converted/enums/Person.hbm.xml" })
36+ @ SessionFactory
37+ @ ServiceRegistry (settings = {@ Setting (name = Environment .PREFER_NATIVE_ENUM_TYPES , value = "false" )})
38+ @ LoggingInspections (
39+ messages = {
40+ @ LoggingInspections .Message (
41+ messageKey = "binding parameter" ,
42+ loggers = @ org .hibernate .testing .orm .junit .Logger (loggerName = JdbcBindingLogging .NAME )
43+ ),
44+ @ LoggingInspections .Message (
45+ messageKey = "extracted value" ,
46+ loggers = @ org .hibernate .testing .orm .junit .Logger (loggerName = JdbcExtractingLogging .NAME )
47+ )
48+ }
49+ )
50+ public class EnumTypeTest {
4351
4452 private Person person ;
4553
46- private Triggerable binderTriggerable ;
47-
48- private Triggerable extractorTriggerable ;
49-
50- @ Override
51- protected String getBaseForMappings () {
52- return "" ;
53- }
54-
55- protected String [] getMappings () {
56- return new String [] { "org/hibernate/orm/test/mapping/converted/enums/Person.hbm.xml" };
57- }
58-
59- @ Override
60- protected void configure (Configuration configuration ) {
61- super .configure ( configuration );
62- configuration .setProperty ( Environment .PREFER_NATIVE_ENUM_TYPES , "false" );
63- }
64-
65- @ Override
66- protected void prepareTest () {
67- doInHibernate ( this ::sessionFactory , s -> {
54+ @ BeforeEach
55+ protected void prepareTest (SessionFactoryScope scope ) {
56+ scope .inTransaction ( s -> {
6857 this .person = Person .person ( Gender .MALE , HairColor .BROWN );
6958 s .persist ( person );
7059 s .persist ( Person .person ( Gender .MALE , HairColor .BLACK ) );
7160 s .persist ( Person .person ( Gender .FEMALE , HairColor .BROWN ) );
7261 s .persist ( Person .person ( Gender .FEMALE , HairColor .BLACK ) );
7362 } );
74-
75- binderTriggerable = binderLogInspection .watchForLogMessages ( "binding parameter" );
76- extractorTriggerable = extractorLogInspection .watchForLogMessages ( "extracted value" );
7763 }
7864
79- @ Override
80- protected boolean isCleanupTestDataRequired ( ) {
81- return true ;
65+ @ AfterEach
66+ protected void cleanupTestData ( SessionFactoryScope scope ) {
67+ scope . dropData () ;
8268 }
8369
8470 @ Test
8571 @ JiraKey (value = "HHH-8153" )
86- public void hbmEnumTypeTest () {
87- doInHibernate (
88- this ::sessionFactory ,
89- s -> {
72+ public void hbmEnumTypeTest (SessionFactoryScope scope ) {
73+ scope .inTransaction ( s -> {
9074 assertEquals ( 2 , getNumberOfPersonByGender ( s , Gender .MALE ) );
9175 assertEquals ( 1 , getNumberOfPersonByGenderAndHairColor ( s , Gender .MALE , HairColor .BROWN ) );
9276 assertEquals ( 2 , getNumberOfPersonByGender ( s , Gender .FEMALE ) );
@@ -116,22 +100,20 @@ private int getNumberOfPersonByGenderAndHairColor(Session session, Gender gender
116100
117101 @ Test
118102 @ JiraKey (value = "HHH-12978" )
119- public void testEnumAsBindParameterAndExtract () {
120- doInHibernate ( this ::sessionFactory , s -> {
121- binderTriggerable .reset ();
122- extractorTriggerable .reset ();
103+ public void testEnumAsBindParameterAndExtract (LoggingInspectionsScope loggingScope , SessionFactoryScope scope ) {
104+ scope .inTransaction ( s -> {
105+ loggingScope .resetWatchers ();
123106
124107 s .createQuery ( "select p.id from Person p where p.id = :id" , Long .class )
125108 .setParameter ( "id" , person .getId () )
126109 .getSingleResult ();
127110
128- assertTrue ( binderTriggerable .wasTriggered () );
129- assertTrue ( extractorTriggerable .wasTriggered () );
111+ assertTrue ( loggingScope . getWatcher ( "binding parameter" , JdbcBindingLogging . NAME ) .wasTriggered () );
112+ assertTrue ( loggingScope . getWatcher ( "extracted value" , JdbcExtractingLogging . NAME ) .wasTriggered () );
130113 } );
131114
132- doInHibernate ( this ::sessionFactory , s -> {
133- binderTriggerable .reset ();
134- extractorTriggerable .reset ();
115+ scope .inTransaction ( s -> {
116+ loggingScope .resetWatchers ();
135117
136118 s .createQuery (
137119 "select p.gender from Person p where p.gender = :gender and p.hairColor = :hairColor" ,
@@ -141,8 +123,8 @@ public void testEnumAsBindParameterAndExtract() {
141123 .setParameter ( "hairColor" , HairColor .BROWN )
142124 .getSingleResult ();
143125
144- assertTrue ( binderTriggerable .wasTriggered () );
145- assertTrue ( extractorTriggerable .wasTriggered () );
126+ assertTrue ( loggingScope . getWatcher ( "binding parameter" , JdbcBindingLogging . NAME ) .wasTriggered () );
127+ assertTrue ( loggingScope . getWatcher ( "extracted value" , JdbcExtractingLogging . NAME ) .wasTriggered () );
146128 } );
147129 }
148130}
0 commit comments