Skip to content

Commit bb88bba

Browse files
committed
HHH-19846 Drop JUnit 4 usage
1 parent 1099aef commit bb88bba

File tree

4 files changed

+113
-102
lines changed

4 files changed

+113
-102
lines changed

hibernate-core/src/test/java/org/hibernate/orm/test/quote/Phone.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
* Copyright Red Hat Inc. and Hibernate Authors
44
*/
55
package org.hibernate.orm.test.quote;
6+
67
import jakarta.persistence.Column;
78
import jakarta.persistence.Entity;
89
import jakarta.persistence.Id;

hibernate-core/src/test/java/org/hibernate/orm/test/quote/QuoteTest.java

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

7-
import java.util.HashSet;
8-
import java.util.Set;
97
import jakarta.persistence.Column;
108
import jakarta.persistence.Entity;
119
import jakarta.persistence.FetchType;
@@ -17,126 +15,137 @@
1715
import jakarta.persistence.ManyToOne;
1816
import jakarta.persistence.OneToMany;
1917
import jakarta.persistence.Table;
20-
21-
import org.hibernate.Session;
22-
18+
import org.hibernate.testing.orm.junit.DomainModel;
2319
import org.hibernate.testing.orm.junit.JiraKey;
24-
import org.hibernate.testing.junit4.BaseNonConfigCoreFunctionalTestCase;
25-
import org.junit.Test;
20+
import org.hibernate.testing.orm.junit.SessionFactory;
21+
import org.hibernate.testing.orm.junit.SessionFactoryScope;
22+
import org.junit.jupiter.api.AfterEach;
23+
import org.junit.jupiter.api.Test;
24+
25+
import java.util.HashSet;
26+
import java.util.Set;
2627

27-
import static org.junit.Assert.assertEquals;
28-
import static org.junit.Assert.assertNotNull;
28+
import static org.assertj.core.api.Assertions.assertThat;
2929

3030
/**
3131
* @author Emmanuel Bernard
3232
* @author Brett Meyer
3333
*/
34-
public class QuoteTest extends BaseNonConfigCoreFunctionalTestCase {
34+
@DomainModel(
35+
annotatedClasses = {
36+
User.class,
37+
Role.class,
38+
Phone.class,
39+
House.class,
40+
QuoteTest.Container.class,
41+
QuoteTest.SimpleItem.class
42+
}
43+
)
44+
@SessionFactory
45+
public class QuoteTest {
46+
47+
@AfterEach
48+
public void cleanup(SessionFactoryScope scope) {
49+
scope.getSessionFactory().getSchemaManager().truncateMappedObjects();
50+
}
3551

3652
@Test
37-
public void testQuoteManytoMany() {
53+
public void testQuoteManytoMany(SessionFactoryScope scope) {
3854
String role = User.class.getName() + ".roles";
39-
assertEquals( "User_Role", metadata().getCollectionBinding( role ).getCollectionTable().getName() );
4055

41-
Session s = openSession();
42-
s.beginTransaction();
43-
User u = new User();
44-
s.persist( u );
45-
Role r = new Role();
46-
s.persist( r );
47-
u.getRoles().add( r );
48-
s.flush();
49-
s.clear();
50-
u = s.get( User.class, u.getId() );
51-
assertEquals( 1, u.getRoles().size() );
52-
s.getTransaction().rollback();
53-
s.close();
56+
assertThat(
57+
scope.getMetadataImplementor().getCollectionBinding( role ).getCollectionTable().getName() ).isEqualTo(
58+
"User_Role" );
59+
60+
scope.inTransaction(
61+
session -> {
62+
User u = new User();
63+
session.persist( u );
64+
Role r = new Role();
65+
session.persist( r );
66+
u.getRoles().add( r );
67+
session.flush();
68+
session.clear();
69+
u = session.get( User.class, u.getId() );
70+
assertThat( u.getRoles() ).hasSize( 1 );
71+
}
72+
);
5473
}
5574

5675
@Test
5776
@JiraKey(value = "HHH-8464")
58-
public void testDoubleQuoteJoinColumn() {
59-
Session s = openSession();
60-
s.getTransaction().begin();
61-
User user = new User();
62-
House house = new House();
63-
user.setHouse( house );
64-
s.persist( house );
65-
s.persist( user );
66-
s.getTransaction().commit();
67-
s.close();
68-
69-
s = openSession();
70-
s.getTransaction().begin();
71-
user = s.get( User.class, user.getId() );
72-
assertNotNull( user );
73-
assertNotNull( user.getHouse() );
74-
// seems trivial, but if quoting normalization worked on the join column, these should all be the same
75-
assertEquals( user.getHouse().getId(), user.getHouse1() );
76-
assertEquals( user.getHouse().getId(), user.getHouse2() );
77-
s.getTransaction().commit();
78-
s.close();
77+
public void testDoubleQuoteJoinColumn(SessionFactoryScope scope) {
78+
User u = new User();
79+
scope.inTransaction(
80+
session -> {
81+
82+
House house = new House();
83+
u.setHouse( house );
84+
session.persist( house );
85+
session.persist( u );
86+
}
87+
);
88+
89+
scope.inTransaction(
90+
session -> {
91+
User user = session.get( User.class, u.getId() );
92+
assertThat( user ).isNotNull();
93+
assertThat( user.getHouse() ).isNotNull();
94+
// seems trivial, but if quoting normalization worked on the join column, these should all be the same
95+
assertThat( user.getHouse1() ).isEqualTo( user.getHouse().getId() );
96+
assertThat( user.getHouse2() ).isEqualTo( user.getHouse().getId() );
97+
}
98+
);
7999
}
80100

81101
@Test
82102
@JiraKey(value = "HHH-2988")
83-
public void testUnionSubclassEntityQuoting() {
84-
Session s = openSession();
85-
s.beginTransaction();
103+
public void testUnionSubclassEntityQuoting(SessionFactoryScope scope) {
86104
Container container1 = new Container();
87-
Container container2 = new Container();
88-
SimpleItem simpleItem = new SimpleItem();
89-
90-
container1.items.add( container2 );
91-
container1.items.add( simpleItem );
92-
container2.parent = container1;
93-
simpleItem.parent = container1;
94-
95-
s.persist( simpleItem );
96-
s.persist( container2 );
97-
s.persist( container1 );
98-
s.getTransaction().commit();
99-
s.close();
100-
101-
s = openSession();
102-
s.beginTransaction();
103-
Container result = s.get( Container.class, container1.id );
104-
assertNotNull( result );
105-
assertNotNull( result.items );
106-
assertEquals( 2, result.items.size() );
107-
s.getTransaction().commit();
108-
s.close();
109-
110-
s = openSession();
111-
s.beginTransaction();
112-
container1 = s.get( Container.class, container1.id );
113-
for ( Item item : container1.items ) {
114-
item.parent = null;
115-
}
116-
container1.items.clear();
117-
s.flush();
118-
s.createQuery( "delete Item" ).executeUpdate();
119-
s.getTransaction().commit();
120-
s.close();
121-
}
122-
123-
@Override
124-
protected Class[] getAnnotatedClasses() {
125-
return new Class[] {
126-
User.class,
127-
Role.class,
128-
Phone.class,
129-
House.class,
130-
Container.class,
131-
SimpleItem.class
132-
};
105+
scope.inTransaction(
106+
session -> {
107+
Container container2 = new Container();
108+
SimpleItem simpleItem = new SimpleItem();
109+
110+
container1.items.add( container2 );
111+
container1.items.add( simpleItem );
112+
container2.parent = container1;
113+
simpleItem.parent = container1;
114+
115+
session.persist( simpleItem );
116+
session.persist( container2 );
117+
session.persist( container1 );
118+
}
119+
);
120+
121+
scope.inTransaction(
122+
session -> {
123+
Container result = session.get( Container.class, container1.id );
124+
assertThat( result ).isNotNull();
125+
assertThat( result.items ).isNotNull();
126+
assertThat( result.items ).hasSize( 2 );
127+
}
128+
);
129+
130+
scope.inTransaction(
131+
session -> {
132+
Container result = session.get( Container.class, container1.id );
133+
for ( Item item : result.items ) {
134+
item.parent = null;
135+
}
136+
result.items.clear();
137+
session.flush();
138+
session.createMutationQuery( "delete Item" ).executeUpdate();
139+
}
140+
);
133141
}
134142

135-
@Entity( name = "Item" )
143+
@Entity(name = "Item")
136144
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
137-
private static abstract class Item {
145+
static abstract class Item {
138146

139-
@Id @GeneratedValue
147+
@Id
148+
@GeneratedValue
140149
@Column(name = "`ID`")
141150
protected long id;
142151

@@ -150,14 +159,14 @@ private static abstract class Item {
150159

151160
@Entity
152161
@Table(name = "`CoNTaiNeR`")
153-
private static class Container extends Item {
162+
static class Container extends Item {
154163

155164
@OneToMany(mappedBy = "parent", targetEntity = Item.class)
156-
private Set<Item> items = new HashSet<Item>( 0 );
165+
private Set<Item> items = new HashSet<>( 0 );
157166
}
158167

159168
@Entity
160169
@Table(name = "`SimpleItem`")
161-
private static class SimpleItem extends Item {
170+
static class SimpleItem extends Item {
162171
}
163172
}

hibernate-core/src/test/java/org/hibernate/orm/test/quote/Role.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
* Copyright Red Hat Inc. and Hibernate Authors
44
*/
55
package org.hibernate.orm.test.quote;
6+
67
import java.io.Serializable;
78
import jakarta.persistence.Entity;
89
import jakarta.persistence.GeneratedValue;

hibernate-core/src/test/java/org/hibernate/orm/test/quote/User.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public class User implements Serializable {
3232
private long id;
3333

3434
@ManyToMany
35-
private Set<Role> roles = new HashSet<Role>();
35+
private Set<Role> roles = new HashSet<>();
3636

3737
// These exist solely for HHH-8464 to ensure that the various forms of quoting are normalized internally
3838
// (using backticks), including the join column. Without normalization, the mapping will throw a

0 commit comments

Comments
 (0)