Skip to content

Commit e804b21

Browse files
committed
HHH-19846 - Remove JUnit4: org.hibernate.orm.test.distinct
Signed-off-by: Jan Schatteman <[email protected]>
1 parent ee76dc2 commit e804b21

File tree

1 file changed

+37
-43
lines changed

1 file changed

+37
-43
lines changed

hibernate-core/src/test/java/org/hibernate/orm/test/distinct/SelectDistinctHqlTest.java

Lines changed: 37 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,14 @@
77
import java.util.ArrayList;
88
import java.util.List;
99

10-
import org.hibernate.boot.SessionFactoryBuilder;
11-
10+
import org.hibernate.testing.jdbc.SQLStatementInspector;
11+
import org.hibernate.testing.orm.junit.DomainModel;
1212
import org.hibernate.testing.orm.junit.JiraKey;
13-
import org.hibernate.testing.jdbc.SQLStatementInterceptor;
14-
import org.hibernate.testing.junit4.BaseNonConfigCoreFunctionalTestCase;
15-
import org.junit.Test;
13+
import org.hibernate.testing.orm.junit.SessionFactory;
14+
import org.hibernate.testing.orm.junit.SessionFactoryScope;
15+
import org.junit.jupiter.api.AfterEach;
16+
import org.junit.jupiter.api.BeforeEach;
17+
import org.junit.jupiter.api.Test;
1618

1719
import jakarta.persistence.CascadeType;
1820
import jakarta.persistence.Column;
@@ -23,87 +25,79 @@
2325
import jakarta.persistence.NamedQuery;
2426
import jakarta.persistence.OneToMany;
2527

26-
import static org.hibernate.testing.transaction.TransactionUtil.doInHibernate;
27-
import static org.junit.Assert.assertEquals;
28-
import static org.junit.Assert.assertTrue;
28+
import static org.junit.jupiter.api.Assertions.assertEquals;
29+
import static org.junit.jupiter.api.Assertions.assertTrue;
2930

3031
/**
3132
* @author Vlad Mihalcea
3233
*/
3334
@JiraKey(value = "HHH-10965")
34-
public class SelectDistinctHqlTest extends BaseNonConfigCoreFunctionalTestCase {
35+
@DomainModel(annotatedClasses = {SelectDistinctHqlTest.Person.class, SelectDistinctHqlTest.Phone.class})
36+
@SessionFactory(useCollectingStatementInspector = true)
37+
public class SelectDistinctHqlTest {
3538

3639
private static final String DISTINCT_NAMED_QUERY = "distinct";
37-
private SQLStatementInterceptor sqlStatementInterceptor;
38-
39-
@Override
40-
protected void configureSessionFactoryBuilder(SessionFactoryBuilder sfb) {
41-
sqlStatementInterceptor = new SQLStatementInterceptor( sfb );
42-
}
40+
private SQLStatementInspector SQLStatementInspector;
4341

44-
@Override
45-
protected Class<?>[] getAnnotatedClasses() {
46-
return new Class<?>[] {
47-
Person.class,
48-
Phone.class,
49-
};
50-
}
51-
52-
protected void prepareTest() {
53-
doInHibernate( this::sessionFactory, session -> {
42+
@BeforeEach
43+
protected void setup(SessionFactoryScope scope) {
44+
scope.inTransaction( session -> {
5445
Person person = new Person();
5546
person.id = 1L;
5647
session.persist( person );
5748

5849
person.addPhone( new Phone( "027-123-4567" ) );
5950
person.addPhone( new Phone( "028-234-9876" ) );
6051
} );
52+
53+
SQLStatementInspector = scope.getCollectingStatementInspector();
54+
SQLStatementInspector.clear();
6155
}
6256

63-
@Override
64-
protected boolean isCleanupTestDataRequired() {
65-
return true;
57+
@AfterEach
58+
protected void tearDown(SessionFactoryScope scope) {
59+
scope.dropData();
6660
}
6761

6862
@Test
69-
public void test() {
70-
doInHibernate( this::sessionFactory, session -> {
71-
sqlStatementInterceptor.getSqlQueries().clear();
72-
List<Person> persons = session.createQuery( "select distinct p from Person p" )
63+
public void test(SessionFactoryScope scope) {
64+
scope.inTransaction( session -> {
65+
SQLStatementInspector.getSqlQueries().clear();
66+
List<Person> persons = session.createQuery( "select distinct p from Person p", Person.class )
7367
.getResultList();
74-
String sqlQuery = sqlStatementInterceptor.getSqlQueries().getLast();
68+
String sqlQuery = SQLStatementInspector.getSqlQueries().get(0);
7569
assertEquals( 1, persons.size() );
7670
assertTrue( sqlQuery.contains( " distinct " ) );
7771
} );
7872

79-
doInHibernate( this::sessionFactory, session -> {
80-
List<Person> persons = session.createQuery( "select p from Person p left join fetch p.phones " )
73+
scope.inTransaction( session -> {
74+
List<Person> persons = session.createQuery( "select p from Person p left join fetch p.phones ", Person.class )
8175
.getResultList();
8276
// with Hibernate ORM 6 it is not necessary to use *distinct* to not duplicate the instances which own the association
8377
assertEquals( 1, persons.size() );
8478
} );
8579

86-
doInHibernate( this::sessionFactory, session -> {
87-
sqlStatementInterceptor.getSqlQueries().clear();
88-
List<Person> persons = session.createQuery( "select distinct p from Person p left join fetch p.phones " )
80+
scope.inTransaction( session -> {
81+
SQLStatementInspector.getSqlQueries().clear();
82+
List<Person> persons = session.createQuery( "select distinct p from Person p left join fetch p.phones ", Person.class )
8983
.getResultList();
9084
assertEquals( 1, persons.size() );
91-
String sqlQuery = sqlStatementInterceptor.getSqlQueries().getLast();
85+
String sqlQuery = SQLStatementInspector.getSqlQueries().get(0);
9286
assertTrue( sqlQuery.contains( " distinct " ) );
9387
} );
9488
}
9589

9690
@Test
9791
@JiraKey(value = "HHH-13780")
98-
public void testNamedQueryDistinctPassThroughTrueWhenNotSpecified() {
99-
doInHibernate( this::sessionFactory, session -> {
100-
sqlStatementInterceptor.getSqlQueries().clear();
92+
public void testNamedQueryDistinctPassThroughTrueWhenNotSpecified(SessionFactoryScope scope) {
93+
scope.inTransaction( session -> {
94+
SQLStatementInspector.getSqlQueries().clear();
10195
List<Person> persons =
10296
session.createNamedQuery( DISTINCT_NAMED_QUERY, Person.class )
10397
.setMaxResults( 5 )
10498
.getResultList();
10599
assertEquals( 1, persons.size() );
106-
String sqlQuery = sqlStatementInterceptor.getSqlQueries().getLast();
100+
String sqlQuery = SQLStatementInspector.getSqlQueries().get(0);
107101
assertTrue( sqlQuery.contains( " distinct " ) );
108102
} );
109103
}

0 commit comments

Comments
 (0)