Skip to content

Commit 73f5531

Browse files
committed
HHH-19846 - Drop JUnit 4 usage: org.hibernate.orm.test.jpa.query
Signed-off-by: Jan Schatteman <jschatte@redhat.com>
1 parent 9f39c0a commit 73f5531

12 files changed

+1138
-1792
lines changed

hibernate-core/src/test/java/org/hibernate/orm/test/jpa/query/ConstructorResultNativeQueryTest.java

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

7-
import static org.hibernate.testing.junit4.ExtraAssertions.assertTyping;
8-
import static org.junit.Assert.assertEquals;
7+
import static org.hibernate.testing.orm.junit.ExtraAssertions.assertTyping;
8+
import static org.junit.jupiter.api.Assertions.assertEquals;
99

1010
import java.util.Date;
1111
import java.util.List;
@@ -14,7 +14,6 @@
1414
import jakarta.persistence.ColumnResult;
1515
import jakarta.persistence.ConstructorResult;
1616
import jakarta.persistence.Entity;
17-
import jakarta.persistence.EntityManager;
1817
import jakarta.persistence.Id;
1918
import jakarta.persistence.NamedNativeQueries;
2019
import jakarta.persistence.NamedNativeQuery;
@@ -25,16 +24,19 @@
2524
import jakarta.persistence.TemporalType;
2625

2726
import org.hibernate.dialect.OracleDialect;
28-
import org.hibernate.orm.test.jpa.BaseEntityManagerFunctionalTestCase;
29-
import org.hibernate.testing.SkipForDialect;
27+
import org.hibernate.testing.orm.junit.EntityManagerFactoryScope;
28+
import org.hibernate.testing.orm.junit.Jpa;
29+
import org.hibernate.testing.orm.junit.SkipForDialect;
3030

31-
import org.junit.Test;
31+
import org.junit.jupiter.api.AfterEach;
32+
import org.junit.jupiter.api.Test;
3233

3334
/**
3435
* @author Steve Ebersole
3536
*/
36-
@SkipForDialect(value = OracleDialect.class, jiraKey = "HHH-10323")
37-
public class ConstructorResultNativeQueryTest extends BaseEntityManagerFunctionalTestCase {
37+
@SkipForDialect(dialectClass = OracleDialect.class, matchSubTypes = true, reason = "https://hibernate.atlassian.net/browse/HHH-10323")
38+
@Jpa(annotatedClasses = {ConstructorResultNativeQueryTest.Person.class})
39+
public class ConstructorResultNativeQueryTest {
3840
@Entity( name = "Person" )
3941
@SqlResultSetMappings(
4042
value = {
@@ -136,85 +138,54 @@ public Person(Integer id, String name, String weight) {
136138
}
137139
}
138140

139-
@Override
140-
protected Class<?>[] getAnnotatedClasses() {
141-
return new Class[] { Person.class };
141+
@AfterEach
142+
public void cleanup(EntityManagerFactoryScope scope) {
143+
scope.getEntityManagerFactory().getSchemaManager().truncate();
142144
}
143145

144-
145146
@Test
146-
public void testConstructorResultNativeQuery() {
147-
EntityManager em = getOrCreateEntityManager();
148-
em.getTransaction().begin();
149-
em.persist( new Person( 1, "John", new Date() ) );
150-
em.getTransaction().commit();
151-
em.close();
152-
153-
em = getOrCreateEntityManager();
154-
em.getTransaction().begin();
155-
List results = em.createNativeQuery(
156-
"select p.id, p.p_name from person p order by p.p_name",
157-
"person-id-and-name"
158-
).getResultList();
159-
assertEquals( 1, results.size() );
160-
assertTyping( Person.class, results.get( 0 ) );
161-
em.getTransaction().commit();
162-
em.close();
163-
164-
em = getOrCreateEntityManager();
165-
em.getTransaction().begin();
166-
em.createQuery( "delete from Person" ).executeUpdate();
167-
em.getTransaction().commit();
168-
em.close();
147+
public void testConstructorResultNativeQuery(EntityManagerFactoryScope scope) {
148+
scope.inTransaction( em -> {
149+
em.persist( new Person( 1, "John", new Date() ) );
150+
} );
151+
152+
scope.inTransaction( em -> {
153+
List results = em.createNativeQuery(
154+
"select p.id, p.p_name from person p order by p.p_name",
155+
"person-id-and-name"
156+
).getResultList();
157+
assertEquals( 1, results.size() );
158+
assertTyping( Person.class, results.get( 0 ) );
159+
} );
169160
}
170161

171162

172163
@Test
173-
public void testMultipleConstructorResultNativeQuery() {
174-
EntityManager em = getOrCreateEntityManager();
175-
em.getTransaction().begin();
176-
em.persist( new Person( 1, "John", new Date() ) );
177-
em.getTransaction().commit();
178-
em.close();
179-
180-
em = getOrCreateEntityManager();
181-
em.getTransaction().begin();
182-
List results = em.createNamedQuery( "person-id-and-name2" ).getResultList();
183-
assertEquals( 1, results.size() );
184-
Object[] result = assertTyping( Object[].class, results.get( 0 ) );
185-
assertEquals( 2, result.length );
186-
assertTyping( Person.class, result[0] );
187-
assertTyping( Person.class, result[1] );
188-
em.getTransaction().commit();
189-
em.close();
190-
191-
em = getOrCreateEntityManager();
192-
em.getTransaction().begin();
193-
em.createQuery( "delete from Person" ).executeUpdate();
194-
em.getTransaction().commit();
195-
em.close();
164+
public void testMultipleConstructorResultNativeQuery(EntityManagerFactoryScope scope) {
165+
scope.inTransaction( em -> {
166+
em.persist( new Person( 1, "John", new Date() ) );
167+
} );
168+
169+
scope.inTransaction( em -> {
170+
List results = em.createNamedQuery( "person-id-and-name2" ).getResultList();
171+
assertEquals( 1, results.size() );
172+
Object[] result = assertTyping( Object[].class, results.get( 0 ) );
173+
assertEquals( 2, result.length );
174+
assertTyping( Person.class, result[0] );
175+
assertTyping( Person.class, result[1] );
176+
} );
196177
}
197178

198179
@Test
199-
public void testConstructorResultNativeQuerySpecifyingType() {
200-
EntityManager em = getOrCreateEntityManager();
201-
em.getTransaction().begin();
202-
em.persist( new Person( 1, "John", "85" ) );
203-
em.getTransaction().commit();
204-
em.close();
205-
206-
em = getOrCreateEntityManager();
207-
em.getTransaction().begin();
208-
List results = em.createNamedQuery( "person-id-and-name-and-weight" ).getResultList();
209-
assertEquals( 1, results.size() );
210-
assertTyping( Person.class, results.get( 0 ) );
211-
em.getTransaction().commit();
212-
em.close();
213-
214-
em = getOrCreateEntityManager();
215-
em.getTransaction().begin();
216-
em.createQuery( "delete from Person" ).executeUpdate();
217-
em.getTransaction().commit();
218-
em.close();
180+
public void testConstructorResultNativeQuerySpecifyingType(EntityManagerFactoryScope scope) {
181+
scope.inTransaction( em -> {
182+
em.persist( new Person( 1, "John", "85" ) );
183+
} );
184+
185+
scope.inTransaction( em -> {
186+
List results = em.createNamedQuery( "person-id-and-name-and-weight" ).getResultList();
187+
assertEquals( 1, results.size() );
188+
assertTyping( Person.class, results.get( 0 ) );
189+
} );
219190
}
220191
}

hibernate-core/src/test/java/org/hibernate/orm/test/jpa/query/NamedQueryTest.java

Lines changed: 44 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -15,55 +15,51 @@
1515
import jakarta.persistence.TypedQuery;
1616
import org.assertj.core.api.InstanceOfAssertFactories;
1717
import org.hibernate.Session;
18-
import org.hibernate.orm.test.jpa.BaseEntityManagerFunctionalTestCase;
1918
import org.hibernate.query.NativeQuery;
19+
import org.hibernate.testing.orm.junit.EntityManagerFactoryScope;
2020
import org.hibernate.testing.orm.junit.JiraKey;
21-
import org.junit.After;
22-
import org.junit.Before;
23-
import org.junit.Test;
21+
import org.hibernate.testing.orm.junit.Jpa;
22+
import org.junit.jupiter.api.AfterEach;
23+
import org.junit.jupiter.api.BeforeEach;
24+
import org.junit.jupiter.api.Test;
2425

2526
import java.util.List;
2627

2728
import static org.assertj.core.api.Assertions.assertThat;
28-
import static org.hibernate.testing.transaction.TransactionUtil.doInJPA;
29-
import static org.junit.Assert.assertEquals;
30-
import static org.junit.Assert.assertThrows;
29+
import static org.junit.jupiter.api.Assertions.assertEquals;
30+
import static org.junit.jupiter.api.Assertions.assertThrows;
3131

3232
/**
3333
* @author Andrea Boriero
3434
*/
3535
@JiraKey(value = "HHH-11092")
36-
public class NamedQueryTest extends BaseEntityManagerFunctionalTestCase {
36+
@Jpa(annotatedClasses = {NamedQueryTest.Game.class})
37+
public class NamedQueryTest {
3738

3839
private static final String[] GAME_TITLES = { "Halo", "Grand Theft Auto", "NetHack" };
3940

40-
@Override
41-
public Class[] getAnnotatedClasses() {
42-
return new Class[] { Game.class };
43-
}
44-
45-
@Before
46-
public void setUp()
41+
@BeforeEach
42+
public void setUp(EntityManagerFactoryScope scope)
4743
throws Exception {
48-
doInJPA( this::entityManagerFactory, entityManager -> {
44+
scope.inTransaction( entityManager -> {
4945
for ( String title : GAME_TITLES ) {
5046
Game game = new Game( title );
5147
entityManager.persist( game );
5248
}
5349
} );
5450
}
5551

56-
@After
57-
public void tearDown() {
58-
doInJPA( this::entityManagerFactory, entityManager -> {
52+
@AfterEach
53+
public void tearDown(EntityManagerFactoryScope scope) {
54+
scope.inTransaction( entityManager -> {
5955
entityManager.createQuery( "delete from Game" ).executeUpdate();
6056
}
6157
);
6258
}
6359

6460
@Test
65-
public void testNamedQueriesOrdinalParametersAreOneBased() {
66-
doInJPA( this::entityManagerFactory, entityManager -> {
61+
public void testNamedQueriesOrdinalParametersAreOneBased(EntityManagerFactoryScope scope) {
62+
scope.inTransaction( entityManager -> {
6763
Query query = entityManager.createNamedQuery( "NamedQuery" );
6864
query.setParameter( 1, GAME_TITLES[0] );
6965
List list = query.getResultList();
@@ -73,8 +69,8 @@ public void testNamedQueriesOrdinalParametersAreOneBased() {
7369
}
7470

7571
@Test
76-
public void testNamedQueryOrdinalParametersConflict() {
77-
doInJPA( this::entityManagerFactory, entityManager -> {
72+
public void testNamedQueryOrdinalParametersConflict(EntityManagerFactoryScope scope) {
73+
scope.inTransaction( entityManager -> {
7874
Query query = entityManager.createNamedQuery( "NamedQuery" );
7975
query.setParameter( 1, GAME_TITLES[0] );
8076
List list = query.getResultList();
@@ -92,8 +88,8 @@ public void testNamedQueryOrdinalParametersConflict() {
9288
}
9389

9490
@Test
95-
public void testNamedQueryOrdinalParametersConflict2() {
96-
doInJPA( this::entityManagerFactory, entityManager -> {
91+
public void testNamedQueryOrdinalParametersConflict2(EntityManagerFactoryScope scope) {
92+
scope.inTransaction( entityManager -> {
9793
Query query = entityManager.createNamedQuery( "NamedQuery" );
9894
query.setParameter( 1, GAME_TITLES[0] );
9995
List list = query.getResultList();
@@ -111,8 +107,8 @@ public void testNamedQueryOrdinalParametersConflict2() {
111107
}
112108

113109
@Test
114-
public void testNativeNamedQueriesOrdinalParametersAreOneBased() {
115-
doInJPA( this::entityManagerFactory, entityManager -> {
110+
public void testNativeNamedQueriesOrdinalParametersAreOneBased(EntityManagerFactoryScope scope) {
111+
scope.inTransaction( entityManager -> {
116112
Query query = entityManager.createNamedQuery( "NamedNativeQuery" );
117113
query.setParameter( 1, GAME_TITLES[0] );
118114
List list = query.getResultList();
@@ -122,8 +118,8 @@ public void testNativeNamedQueriesOrdinalParametersAreOneBased() {
122118
}
123119

124120
@Test
125-
public void testNativeNamedQueriesOrdinalParametersConflict() {
126-
doInJPA( this::entityManagerFactory, entityManager -> {
121+
public void testNativeNamedQueriesOrdinalParametersConflict(EntityManagerFactoryScope scope) {
122+
scope.inTransaction( entityManager -> {
127123
Query query = entityManager.createNamedQuery( "NamedNativeQuery" );
128124
query.setParameter( 1, GAME_TITLES[0] );
129125
List list = query.getResultList();
@@ -142,8 +138,8 @@ public void testNativeNamedQueriesOrdinalParametersConflict() {
142138
}
143139

144140
@Test
145-
public void testNativeNamedQueriesOrdinalParametersConflict2() {
146-
doInJPA( this::entityManagerFactory, entityManager -> {
141+
public void testNativeNamedQueriesOrdinalParametersConflict2(EntityManagerFactoryScope scope) {
142+
scope.inTransaction( entityManager -> {
147143
Query query = entityManager.createNamedQuery( "NamedNativeQuery" );
148144
query.setParameter( 1, GAME_TITLES[0] );
149145
List list = query.getResultList();
@@ -163,8 +159,8 @@ public void testNativeNamedQueriesOrdinalParametersConflict2() {
163159

164160
@Test
165161
@JiraKey(value = "HHH-12621")
166-
public void testNativeQueriesFromNamedQueriesDoNotShareQuerySpaces() {
167-
doInJPA( this::entityManagerFactory, entityManager -> {
162+
public void testNativeQueriesFromNamedQueriesDoNotShareQuerySpaces(EntityManagerFactoryScope scope) {
163+
scope.inTransaction( entityManager -> {
168164
Query originalQuery = entityManager.createNativeQuery( "select g from Game g where title = ?1" );
169165
entityManager.getEntityManagerFactory().addNamedQuery( "myQuery", originalQuery );
170166

@@ -182,23 +178,23 @@ public void testNativeQueriesFromNamedQueriesDoNotShareQuerySpaces() {
182178

183179
@Test
184180
@JiraKey(value = "HHH-11413")
185-
public void testNamedNativeQueryExceptionNoResultDefined() {
186-
doInJPA( this::entityManagerFactory, entityManager -> {
181+
public void testNamedNativeQueryExceptionNoResultDefined(EntityManagerFactoryScope scope) {
182+
scope.inTransaction( entityManager -> {
187183
assertThrows(
188-
"Named query exists but its result type is not compatible",
189184
IllegalArgumentException.class,
190-
() -> entityManager.createNamedQuery( "NamedNativeQuery", Game.class )
185+
() -> entityManager.createNamedQuery( "NamedNativeQuery", Game.class ),
186+
"Named query exists but its result type is not compatible"
191187
);
192188
} );
193189
}
194190

195191
@Test
196192
@JiraKey(value = "HHH-11413")
197-
public void testNamedQueryAddedFromTypedNativeQuery() {
198-
doInJPA( this::entityManagerFactory, entityManager -> {
193+
public void testNamedQueryAddedFromTypedNativeQuery(EntityManagerFactoryScope scope) {
194+
scope.inTransaction( entityManager -> {
199195
final Query query = entityManager.createNativeQuery(
200196
"select g.title from Game g where title = ?", String.class );
201-
entityManagerFactory().addNamedQuery( "the-query", query );
197+
scope.getEntityManagerFactory().addNamedQuery( "the-query", query );
202198

203199
final TypedQuery<String> namedQuery = entityManager.createNamedQuery( "the-query", String.class );
204200
namedQuery.setParameter( 1, "abc" );
@@ -208,9 +204,9 @@ public void testNamedQueryAddedFromTypedNativeQuery() {
208204

209205
@Test
210206
@JiraKey("HHH-17566")
211-
public void testNamedQueryAddedFromEntityNativeQuery() {
207+
public void testNamedQueryAddedFromEntityNativeQuery(EntityManagerFactoryScope scope) {
212208
// Check that the native query works
213-
doInJPA( this::entityManagerFactory, entityManager -> {
209+
scope.inTransaction( entityManager -> {
214210
final Query query = entityManager.createNativeQuery(
215211
"select g.* from Game g where title = ?", Game.class );
216212
query.setParameter( 1, "Halo" );
@@ -221,10 +217,10 @@ public void testNamedQueryAddedFromEntityNativeQuery() {
221217
.returns( "Halo", Game::getTitle );
222218
} );
223219
// Check corresponding named query can be used as a typed query
224-
doInJPA( this::entityManagerFactory, entityManager -> {
220+
scope.inTransaction( entityManager -> {
225221
final Query query = entityManager.createNativeQuery(
226222
"select g.* from Game g where title = ?", Game.class );
227-
entityManagerFactory().addNamedQuery( "the-query", query );
223+
scope.getEntityManagerFactory().addNamedQuery( "the-query", query );
228224

229225
final TypedQuery<Game> namedQuery = entityManager.createNamedQuery( "the-query", Game.class );
230226
namedQuery.setParameter( 1, "Halo" );
@@ -237,9 +233,9 @@ public void testNamedQueryAddedFromEntityNativeQuery() {
237233

238234
@Test
239235
@JiraKey("HHH-17566")
240-
public void testNamedQueryAddedFromEntityNativeQueryUsedAsUntyped() {
236+
public void testNamedQueryAddedFromEntityNativeQueryUsedAsUntyped(EntityManagerFactoryScope scope) {
241237
// Check corresponding named query can be used as an untyped query
242-
doInJPA( this::entityManagerFactory, entityManager -> {
238+
scope.inTransaction( entityManager -> {
243239
final Query query = entityManager.createNativeQuery(
244240
"select g.* from Game g where title = ?", Game.class );
245241
query.setParameter( 1, "Halo" );
@@ -250,10 +246,10 @@ public void testNamedQueryAddedFromEntityNativeQueryUsedAsUntyped() {
250246
.returns( "Halo", Game::getTitle );
251247
} );
252248
// Check naming the native query works
253-
doInJPA( this::entityManagerFactory, entityManager -> {
249+
scope.inTransaction( entityManager -> {
254250
final Query query = entityManager.createNativeQuery(
255251
"select g.* from Game g where title = ?", Game.class );
256-
entityManagerFactory().addNamedQuery( "the-query", query );
252+
scope.getEntityManagerFactory().addNamedQuery( "the-query", query );
257253

258254
final Query namedQuery = entityManager.createNamedQuery( "the-query" );
259255
namedQuery.setParameter( 1, "Halo" );

0 commit comments

Comments
 (0)