44 */
55package org .hibernate .orm .test .dialect .functional ;
66
7- import static org .hibernate .testing .transaction .TransactionUtil .doInHibernate ;
8- import static org .junit .Assert .assertEquals ;
9- import static org .junit .Assert .assertTrue ;
7+ import static org .junit .jupiter .api .Assertions .assertEquals ;
8+ import static org .junit .jupiter .api .Assertions .assertTrue ;
109
1110import java .sql .PreparedStatement ;
1211
1312import jakarta .persistence .Entity ;
1413import jakarta .persistence .Id ;
1514import jakarta .persistence .PersistenceException ;
1615
17- import org .hibernate .Session ;
1816import org .hibernate .dialect .HANADialect ;
1917import org .hibernate .query .Query ;
20- import org .hibernate .testing .RequiresDialect ;
18+ import org .hibernate .testing .orm .junit .DomainModel ;
19+ import org .hibernate .testing .orm .junit .RequiresDialect ;
2120import org .hibernate .testing .orm .junit .JiraKey ;
22- import org .hibernate .testing .junit4 .BaseCoreFunctionalTestCase ;
23- import org .junit .Test ;
21+ import org .hibernate .testing .orm .junit .ServiceRegistry ;
22+ import org .hibernate .testing .orm .junit .SessionFactory ;
23+ import org .hibernate .testing .orm .junit .SessionFactoryScope ;
24+ import org .hibernate .testing .orm .junit .Setting ;
25+ import org .junit .jupiter .api .AfterEach ;
26+ import org .junit .jupiter .api .Assertions ;
27+ import org .junit .jupiter .api .BeforeEach ;
28+ import org .junit .jupiter .api .Test ;
2429
2530/**
2631 * Tests the correctness of the parameter hibernate.dialect.hana.use_legacy_boolean_type which controls the mapping of
3035 * @author Jonathan Bregler
3136 */
3237@ RequiresDialect (HANADialect .class )
33- public class HANABooleanTest extends BaseCoreFunctionalTestCase {
38+ @ DomainModel (annotatedClasses = {HANABooleanTest .BooleanEntity .class , HANABooleanTest .LegacyBooleanEntity .class })
39+ public class HANABooleanTest {
3440
3541 private static final String ENTITY_NAME = "BooleanEntity" ;
3642 private static final String LEGACY_ENTITY_NAME = "LegacyBooleanEntity" ;
3743
38- @ Override
39- protected void prepareTest () throws Exception {
40- doInHibernate ( this :: sessionFactory , session -> {
44+ @ BeforeEach
45+ protected void prepareTest (SessionFactoryScope scope ) throws Exception {
46+ scope . inTransaction ( session -> {
4147 session .doWork ( connection -> {
4248 try ( PreparedStatement ps = connection
4349 .prepareStatement ( "CREATE COLUMN TABLE " + ENTITY_NAME + " (key INTEGER, bool BOOLEAN, PRIMARY KEY (key))" ) ) {
@@ -52,9 +58,9 @@ protected void prepareTest() throws Exception {
5258 } );
5359 }
5460
55- @ Override
56- protected void cleanupTest () throws Exception {
57- doInHibernate ( this :: sessionFactory , session -> {
61+ @ AfterEach
62+ protected void cleanupTest (SessionFactoryScope scope ) throws Exception {
63+ scope . inTransaction ( session -> {
5864 session .doWork ( connection -> {
5965 try ( PreparedStatement ps = connection .prepareStatement ( "DROP TABLE " + ENTITY_NAME ) ) {
6066 ps .execute ();
@@ -75,155 +81,115 @@ protected void cleanupTest() throws Exception {
7581
7682 @ Test
7783 @ JiraKey (value = "HHH-12132" )
78- public void testBooleanType () throws Exception {
79- rebuildSessionFactory ( configuration -> {
80- configuration .setProperty ( "hibernate.dialect.hana.use_legacy_boolean_type" , Boolean .FALSE .toString () );
84+ @ SessionFactory (exportSchema = false )
85+ @ ServiceRegistry (settings = {
86+ @ Setting ( name = "hibernate.dialect.hana.use_legacy_boolean_type" , value = "false" )
87+ })
88+ public void testBooleanType (SessionFactoryScope scope ) {
89+ scope .inTransaction ( session -> {
90+ BooleanEntity entity = new BooleanEntity ();
91+ entity .key = 1 ;
92+ entity .bool = Boolean .TRUE ;
93+
94+ session .persist ( entity );
8195 } );
8296
83- Session s = openSession ();
84- s .beginTransaction ();
97+ scope .inTransaction ( session -> {
98+ Query <BooleanEntity > query = session .createQuery ( "select b from " + ENTITY_NAME + " b where bool = true" , BooleanEntity .class );
99+ BooleanEntity retrievedEntity = query .getSingleResult ();
85100
86- BooleanEntity entity = new BooleanEntity ();
87- entity .key = Integer .valueOf ( 1 );
88- entity .bool = Boolean .TRUE ;
89-
90- s .persist ( entity );
91-
92- s .flush ();
93-
94- s .getTransaction ().commit ();
95-
96- s .clear ();
97-
98- Query <BooleanEntity > legacyQuery = s .createQuery ( "select b from " + ENTITY_NAME + " b where bool = true" , BooleanEntity .class );
99-
100- BooleanEntity retrievedEntity = legacyQuery .getSingleResult ();
101-
102- assertEquals ( Integer .valueOf ( 1 ), retrievedEntity .key );
103- assertTrue ( retrievedEntity .bool );
101+ assertEquals ( Integer .valueOf ( 1 ), retrievedEntity .key );
102+ assertTrue ( retrievedEntity .bool );
103+ } );
104104 }
105105
106106 @ Test
107107 @ JiraKey (value = "HHH-12132" )
108- public void testBooleanTypeDefaultBehavior () throws Exception {
109- rebuildSessionFactory ();
110-
111- Session s = openSession ();
112- s .beginTransaction ();
113-
114- BooleanEntity entity = new BooleanEntity ();
115- entity .key = Integer .valueOf ( 1 );
116- entity .bool = Boolean .TRUE ;
117-
118- s .persist ( entity );
119-
120- s .flush ();
121-
122- s .getTransaction ().commit ();
123-
124- s .clear ();
125-
126- Query <BooleanEntity > legacyQuery = s .createQuery ( "select b from " + ENTITY_NAME + " b where bool = true" , BooleanEntity .class );
108+ @ SessionFactory (exportSchema = false )
109+ public void testBooleanTypeDefaultBehavior (SessionFactoryScope scope ) {
110+ scope .inTransaction ( session -> {
111+ BooleanEntity entity = new BooleanEntity ();
112+ entity .key = 1 ;
113+ entity .bool = Boolean .TRUE ;
114+
115+ session .persist ( entity );
116+ } );
127117
128- BooleanEntity retrievedEntity = legacyQuery .getSingleResult ();
118+ scope .inTransaction ( session -> {
119+ Query <BooleanEntity > query = session .createQuery ( "select b from " + ENTITY_NAME + " b where bool = true" , BooleanEntity .class );
120+ BooleanEntity retrievedEntity = query .getSingleResult ();
129121
130- assertEquals ( Integer .valueOf ( 1 ), retrievedEntity .key );
131- assertTrue ( retrievedEntity .bool );
122+ assertEquals ( Integer .valueOf ( 1 ), retrievedEntity .key );
123+ assertTrue ( retrievedEntity .bool );
124+ } );
132125 }
133126
134- @ Test (expected = PersistenceException .class )
127+ @ Test /* (expected = PersistenceException.class)*/
135128 @ JiraKey (value = "HHH-12132" )
136- public void testLegacyBooleanType () throws Exception {
137- rebuildSessionFactory ( configuration -> {
138- configuration .setProperty ( "hibernate.dialect.hana.use_legacy_boolean_type" , Boolean .FALSE .toString () );
129+ @ SessionFactory (exportSchema = false )
130+ @ ServiceRegistry (settings = {
131+ @ Setting ( name = "hibernate.dialect.hana.use_legacy_boolean_type" , value = "false" )
132+ })
133+ public void testLegacyBooleanType (SessionFactoryScope scope ) throws Exception {
134+ scope .inTransaction ( session -> {
135+ LegacyBooleanEntity entity = new LegacyBooleanEntity ();
136+ entity .key = 2 ;
137+ entity .bool = Boolean .FALSE ;
138+
139+ session .persist ( entity );
139140 } );
140141
141- Session s = openSession ();
142- s .beginTransaction ();
143-
144- LegacyBooleanEntity legacyEntity = new LegacyBooleanEntity ();
145- legacyEntity .key = Integer .valueOf ( 2 );
146- legacyEntity .bool = Boolean .FALSE ;
147-
148- s .persist ( legacyEntity );
149- s .flush ();
150-
151- s .getTransaction ().commit ();
152-
153- s .clear ();
154-
155- Query <LegacyBooleanEntity > query = s .createQuery ( "select b from " + LEGACY_ENTITY_NAME + " b where bool = true" , LegacyBooleanEntity .class );
156-
157- query .getSingleResult ();
142+ scope .inTransaction ( session -> {
143+ Query <LegacyBooleanEntity > query = session .createQuery ( "select b from " + LEGACY_ENTITY_NAME + " b where bool = true" , LegacyBooleanEntity .class );
144+ Assertions .assertThrows ( PersistenceException .class , () -> query .getSingleResult () );
145+ } );
158146 }
159147
160148 @ Test
161149 @ JiraKey (value = "HHH-12132" )
162- public void testLegacyBooleanTypeLegacyBehavior () throws Exception {
163- rebuildSessionFactory ( configuration -> {
164- configuration .setProperty ( "hibernate.dialect.hana.use_legacy_boolean_type" , Boolean .TRUE .toString () );
150+ @ SessionFactory (exportSchema = false )
151+ @ ServiceRegistry (settings = {
152+ @ Setting ( name = "hibernate.dialect.hana.use_legacy_boolean_type" , value = "true" )
153+ })
154+ public void testLegacyBooleanTypeLegacyBehavior (SessionFactoryScope scope ) throws Exception {
155+ scope .inTransaction ( session -> {
156+ LegacyBooleanEntity entity = new LegacyBooleanEntity ();
157+ entity .key = 1 ;
158+ entity .bool = Boolean .TRUE ;
159+
160+ session .persist ( entity );
165161 } );
166162
167- Session s = openSession ();
168- s .beginTransaction ();
169-
170- LegacyBooleanEntity legacyEntity = new LegacyBooleanEntity ();
171- legacyEntity .key = Integer .valueOf ( 1 );
172- legacyEntity .bool = Boolean .TRUE ;
173-
174- s .persist ( legacyEntity );
175-
176- s .flush ();
163+ scope .inTransaction ( session -> {
164+ Query <LegacyBooleanEntity > query = session .createQuery ( "select b from " + LEGACY_ENTITY_NAME + " b where bool = true" , LegacyBooleanEntity .class );
165+ LegacyBooleanEntity retrievedEntity = query .getSingleResult ();
177166
178- s .getTransaction ().commit ();
179-
180- s .clear ();
181-
182- Query <LegacyBooleanEntity > legacyQuery = s .createQuery ( "select b from " + LEGACY_ENTITY_NAME + " b where bool = true" , LegacyBooleanEntity .class );
183-
184- LegacyBooleanEntity retrievedEntity = legacyQuery .getSingleResult ();
185-
186- assertEquals ( Integer .valueOf ( 1 ), retrievedEntity .key );
187- assertTrue ( retrievedEntity .bool );
167+ assertEquals ( Integer .valueOf ( 1 ), retrievedEntity .key );
168+ assertTrue ( retrievedEntity .bool );
169+ } );
188170 }
189171
190- @ Test (expected = PersistenceException .class )
172+ @ Test /* (expected = PersistenceException.class)*/
191173 @ JiraKey (value = "HHH-12132" )
192- public void testBooleanTypeLegacyBehavior () throws Exception {
193- rebuildSessionFactory ( configuration -> {
194- configuration .setProperty ( "hibernate.dialect.hana.use_legacy_boolean_type" , Boolean .TRUE .toString () );
174+ @ SessionFactory (exportSchema = false )
175+ @ ServiceRegistry (settings = {
176+ @ Setting ( name = "hibernate.dialect.hana.use_legacy_boolean_type" , value = "true" )
177+ })
178+ public void testBooleanTypeLegacyBehavior (SessionFactoryScope scope ) throws Exception {
179+ scope .inTransaction ( session -> {
180+ BooleanEntity entity = new BooleanEntity ();
181+ entity .key = 2 ;
182+ entity .bool = Boolean .FALSE ;
183+
184+ session .persist ( entity );
195185 } );
196186
197- Session s = openSession ();
198- s .beginTransaction ();
199-
200- BooleanEntity entity = new BooleanEntity ();
201- entity .key = Integer .valueOf ( 2 );
202- entity .bool = Boolean .FALSE ;
203-
204- s .persist ( entity );
205- s .flush ();
206-
207- s .getTransaction ().commit ();
208-
209- s .clear ();
210-
211- Query <BooleanEntity > query = s .createQuery ( "select b from " + ENTITY_NAME + " b where bool = true" , BooleanEntity .class );
212-
213- query .getSingleResult ();
214- }
215-
216- @ Override
217- protected boolean createSchema () {
218- return false ;
187+ scope .inTransaction ( session -> {
188+ Query <BooleanEntity > query = session .createQuery ( "select b from " + ENTITY_NAME + " b where bool = true" , BooleanEntity .class );
189+ Assertions .assertThrows ( PersistenceException .class , () -> query .getSingleResult () );
190+ } );
219191 }
220192
221- @ Override
222- protected Class <?>[] getAnnotatedClasses () {
223- return new Class []{
224- BooleanEntity .class , LegacyBooleanEntity .class
225- };
226- }
227193
228194 @ Entity (name = LEGACY_ENTITY_NAME )
229195 public static class LegacyBooleanEntity {
0 commit comments