Skip to content

Commit dddeaf4

Browse files
committed
HHH-19871 --wip-- Envers migration to JUnit 6
- `org.hibernate.orm.test.envers.integration.modifiedflags` - `org.hibernate.orm.test.envers.integration.multiplerelations` - `org.hibernate.orm.test.envers.integration.naming` - `org.hibernate.orm.test.envers.integration.nativequery` - `org.hibernate.orm.test.envers.integration.naturalid` - `org.hibernate.orm.test.envers.integration.notinsertable` - `org.hibernate.orm.test.envers.integration.notupdatable`
1 parent 484551a commit dddeaf4

File tree

52 files changed

+3199
-3044
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+3199
-3044
lines changed

hibernate-envers/src/test/java/org/hibernate/orm/test/envers/integration/modifiedflags/AbstractModifiedFlagsEntityTest.java

Lines changed: 21 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -5,81 +5,70 @@
55
package org.hibernate.orm.test.envers.integration.modifiedflags;
66

77
import java.util.List;
8-
import java.util.Map;
98

10-
import org.hibernate.envers.configuration.EnversSettings;
9+
import org.hibernate.envers.AuditReader;
1110
import org.hibernate.envers.query.AuditEntity;
1211
import org.hibernate.envers.query.AuditQuery;
13-
import org.hibernate.orm.test.envers.BaseEnversJPAFunctionalTestCase;
12+
import org.hibernate.testing.envers.junit.EnversTest;
1413

1514
/**
16-
* Base test for modified flags feature
15+
* Base utility for modified flags feature tests
1716
*
1817
* @author Michal Skowronek (mskowr at o2 dot pl)
1918
*/
20-
public abstract class AbstractModifiedFlagsEntityTest extends BaseEnversJPAFunctionalTestCase {
21-
@Override
22-
protected void addConfigOptions(Map options) {
23-
super.addConfigOptions( options );
24-
if ( forceModifiedFlags() ) {
25-
options.put( EnversSettings.GLOBAL_WITH_MODIFIED_FLAG, "true" );
26-
}
27-
}
28-
29-
public boolean forceModifiedFlags() {
30-
return true;
31-
}
19+
@EnversTest
20+
public abstract class AbstractModifiedFlagsEntityTest {
3221

33-
protected List queryForPropertyHasChanged(
34-
Class<?> clazz, Object id,
22+
protected static List queryForPropertyHasChanged(
23+
AuditReader auditReader, Class<?> clazz, Object id,
3524
String... propertyNames) {
36-
AuditQuery query = createForRevisionsQuery( clazz, id, false );
25+
AuditQuery query = createForRevisionsQuery( auditReader, clazz, id, false );
3726
addHasChangedProperties( query, propertyNames );
3827
return query.getResultList();
3928
}
4029

41-
protected List queryForPropertyHasChangedWithDeleted(
42-
Class<?> clazz, Object id,
30+
protected static List queryForPropertyHasChangedWithDeleted(
31+
AuditReader auditReader, Class<?> clazz, Object id,
4332
String... propertyNames) {
44-
AuditQuery query = createForRevisionsQuery( clazz, id, true );
33+
AuditQuery query = createForRevisionsQuery( auditReader, clazz, id, true );
4534
addHasChangedProperties( query, propertyNames );
4635
return query.getResultList();
4736
}
4837

49-
protected List queryForPropertyHasNotChanged(
50-
Class<?> clazz, Object id,
38+
protected static List queryForPropertyHasNotChanged(
39+
AuditReader auditReader, Class<?> clazz, Object id,
5140
String... propertyNames) {
52-
AuditQuery query = createForRevisionsQuery( clazz, id, false );
41+
AuditQuery query = createForRevisionsQuery( auditReader, clazz, id, false );
5342
addHasNotChangedProperties( query, propertyNames );
5443
return query.getResultList();
5544
}
5645

57-
protected List queryForPropertyHasNotChangedWithDeleted(
58-
Class<?> clazz, Object id,
46+
protected static List queryForPropertyHasNotChangedWithDeleted(
47+
AuditReader auditReader, Class<?> clazz, Object id,
5948
String... propertyNames) {
60-
AuditQuery query = createForRevisionsQuery( clazz, id, true );
49+
AuditQuery query = createForRevisionsQuery( auditReader, clazz, id, true );
6150
addHasNotChangedProperties( query, propertyNames );
6251
return query.getResultList();
6352
}
6453

65-
private void addHasChangedProperties(
54+
private static void addHasChangedProperties(
6655
AuditQuery query,
6756
String[] propertyNames) {
6857
for ( String propertyName : propertyNames ) {
6958
query.add( AuditEntity.property( propertyName ).hasChanged() );
7059
}
7160
}
7261

73-
private void addHasNotChangedProperties(
62+
private static void addHasNotChangedProperties(
7463
AuditQuery query,
7564
String[] propertyNames) {
7665
for ( String propertyName : propertyNames ) {
7766
query.add( AuditEntity.property( propertyName ).hasNotChanged() );
7867
}
7968
}
8069

81-
private AuditQuery createForRevisionsQuery(Class<?> clazz, Object id, boolean withDeleted) {
82-
return getAuditReader().createQuery()
70+
private static AuditQuery createForRevisionsQuery(AuditReader auditReader, Class<?> clazz, Object id, boolean withDeleted) {
71+
return auditReader.createQuery()
8372
.forRevisionsOfEntity( clazz, false, withDeleted )
8473
.add( AuditEntity.id().eq( id ) );
8574
}

hibernate-envers/src/test/java/org/hibernate/orm/test/envers/integration/modifiedflags/AbstractModifiedFlagsOneSessionTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
*
1414
* @author Michal Skowronek (mskowr at o2 dot pl)
1515
*/
16+
// todo (envers-junit): migrate this after AbstractOneSessionTest
1617
public abstract class AbstractModifiedFlagsOneSessionTest extends
1718
AbstractOneSessionTest {
1819

hibernate-envers/src/test/java/org/hibernate/orm/test/envers/integration/modifiedflags/DetachedEntityTest.java

Lines changed: 64 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,17 @@
1010
import jakarta.persistence.Entity;
1111
import jakarta.persistence.Id;
1212

13-
import org.hibernate.Session;
13+
import org.hibernate.envers.AuditReaderFactory;
1414
import org.hibernate.envers.Audited;
1515
import org.hibernate.envers.query.AuditEntity;
16-
import org.hibernate.orm.test.envers.BaseEnversFunctionalTestCase;
17-
import org.hibernate.orm.test.envers.Priority;
18-
import org.junit.Test;
19-
16+
import org.hibernate.testing.envers.junit.EnversTest;
17+
import org.hibernate.testing.orm.junit.BeforeClassTemplate;
18+
import org.hibernate.testing.orm.junit.EntityManagerFactoryScope;
2019
import org.hibernate.testing.orm.junit.JiraKey;
20+
import org.hibernate.testing.orm.junit.Jpa;
21+
import org.junit.jupiter.api.Test;
2122

22-
import static org.junit.Assert.assertEquals;
23+
import static org.junit.jupiter.api.Assertions.assertEquals;
2324

2425
/**
2526
* Test that an updated detached entity will still properly track {@code withModifiedFlag}
@@ -29,84 +30,80 @@
2930
* @author Chris Cranford
3031
*/
3132
@JiraKey("HHH-8973")
32-
public class DetachedEntityTest extends BaseEnversFunctionalTestCase {
33-
@Override
34-
protected Class[] getAnnotatedClasses() {
35-
return new Class<?>[] { Project.class };
36-
}
33+
@EnversTest
34+
@Jpa(annotatedClasses = { DetachedEntityTest.Project.class })
35+
public class DetachedEntityTest {
3736

38-
@Test
39-
@Priority(10)
40-
public void initData() {
41-
final Session s = openSession();
42-
try {
37+
@BeforeClassTemplate
38+
public void initData(EntityManagerFactoryScope scope) {
39+
scope.inTransaction( em -> {
4340
// revision 1 - persist the project entity
44-
s.getTransaction().begin();
4541
final Project project = new Project( 1, "fooName" );
46-
s.persist( project );
47-
s.getTransaction().commit();
48-
49-
// detach the project entity
50-
s.clear();
51-
52-
// revision 2 to 6 - update the detached project entity.
53-
for( int i = 0; i < 5; ++i ) {
54-
s.getTransaction().begin();
55-
project.setName( "fooName" + ( i + 2 ) );
56-
s.merge( project );
57-
s.getTransaction().commit();
58-
s.clear();
59-
}
60-
}
61-
catch ( Throwable t ) {
62-
if ( s.getTransaction().isActive() ) {
63-
s.getTransaction().rollback();
64-
}
65-
throw t;
66-
}
67-
finally {
68-
s.close();
42+
em.persist( project );
43+
} );
44+
45+
// revision 2 to 6 - update the detached project entity.
46+
for ( int i = 0; i < 5; ++i ) {
47+
final int index = i;
48+
scope.inTransaction( em -> {
49+
final Project project = em.find( Project.class, 1 );
50+
em.detach( project );
51+
project.setName( "fooName" + ( index + 2 ) );
52+
em.merge( project );
53+
} );
6954
}
7055
}
7156

7257
@Test
73-
public void testRevisionCounts() {
74-
assertEquals( Arrays.asList( 1, 2, 3, 4, 5, 6 ), getAuditReader().getRevisions( Project.class, 1 ) );
58+
public void testRevisionCounts(EntityManagerFactoryScope scope) {
59+
scope.inEntityManager( em -> {
60+
final var auditReader = AuditReaderFactory.get( em );
61+
assertEquals( Arrays.asList( 1, 2, 3, 4, 5, 6 ), auditReader.getRevisions( Project.class, 1 ) );
62+
} );
7563
}
7664

7765
@Test
78-
public void testRevisionHistory() {
79-
for ( Integer revision : Arrays.asList( 1, 2, 3, 4, 5, 6 ) ) {
80-
final Project project = getAuditReader().find( Project.class, 1, revision );
81-
if ( revision == 1 ) {
82-
assertEquals( new Project( 1, "fooName" ), project );
66+
public void testRevisionHistory(EntityManagerFactoryScope scope) {
67+
scope.inEntityManager( em -> {
68+
final var auditReader = AuditReaderFactory.get( em );
69+
for ( Integer revision : Arrays.asList( 1, 2, 3, 4, 5, 6 ) ) {
70+
final Project project = auditReader.find( Project.class, 1, revision );
71+
if ( revision == 1 ) {
72+
assertEquals( new Project( 1, "fooName" ), project );
73+
}
74+
else {
75+
assertEquals( new Project( 1, "fooName" + revision ), project );
76+
}
8377
}
84-
else {
85-
assertEquals( new Project( 1, "fooName" + revision ), project );
86-
}
87-
}
78+
} );
8879
}
8980

9081
@Test
91-
public void testModifiedFlagChangesForProjectType() {
92-
final List results = getAuditReader().createQuery()
93-
.forRevisionsOfEntity( Project.class, false, true )
94-
.add( AuditEntity.property( "type" ).hasChanged() )
95-
.addProjection( AuditEntity.revisionNumber() )
96-
.addOrder( AuditEntity.revisionNumber().asc() )
97-
.getResultList();
98-
assertEquals( Arrays.asList( 1 ), results );
82+
public void testModifiedFlagChangesForProjectType(EntityManagerFactoryScope scope) {
83+
scope.inEntityManager( em -> {
84+
final var auditReader = AuditReaderFactory.get( em );
85+
final List results = auditReader.createQuery()
86+
.forRevisionsOfEntity( Project.class, false, true )
87+
.add( AuditEntity.property( "type" ).hasChanged() )
88+
.addProjection( AuditEntity.revisionNumber() )
89+
.addOrder( AuditEntity.revisionNumber().asc() )
90+
.getResultList();
91+
assertEquals( Arrays.asList( 1 ), results );
92+
} );
9993
}
10094

10195
@Test
102-
public void testModifiedFlagChangesForProjectName() {
103-
final List results = getAuditReader().createQuery()
104-
.forRevisionsOfEntity( Project.class, false, true )
105-
.add( AuditEntity.property( "name" ).hasChanged() )
106-
.addProjection( AuditEntity.revisionNumber() )
107-
.addOrder( AuditEntity.revisionNumber().asc() )
108-
.getResultList();
109-
assertEquals( Arrays.asList( 1, 2, 3, 4, 5, 6 ), results );
96+
public void testModifiedFlagChangesForProjectName(EntityManagerFactoryScope scope) {
97+
scope.inEntityManager( em -> {
98+
final var auditReader = AuditReaderFactory.get( em );
99+
final List results = auditReader.createQuery()
100+
.forRevisionsOfEntity( Project.class, false, true )
101+
.add( AuditEntity.property( "name" ).hasChanged() )
102+
.addProjection( AuditEntity.revisionNumber() )
103+
.addOrder( AuditEntity.revisionNumber().asc() )
104+
.getResultList();
105+
assertEquals( Arrays.asList( 1, 2, 3, 4, 5, 6 ), results );
106+
} );
110107
}
111108

112109
@Entity(name = "Project")

0 commit comments

Comments
 (0)