Skip to content

Commit 8eae372

Browse files
committed
HHH-18389 Add test for issue
1 parent 4100ee0 commit 8eae372

9 files changed

+1080
-103
lines changed

hibernate-core/src/test/java/org/hibernate/orm/test/collection/dereferenced/UnversionedCascadeDereferencedCollectionTest.java

Lines changed: 4 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import org.hibernate.testing.orm.junit.SessionFactoryScope;
3737
import org.junit.jupiter.api.Test;
3838

39+
import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
3940
import static org.junit.jupiter.api.Assertions.assertEquals;
4041
import static org.junit.jupiter.api.Assertions.assertNotNull;
4142
import static org.junit.jupiter.api.Assertions.assertNull;
@@ -76,12 +77,9 @@ public void testMergeNullCollection(SessionFactoryScope scope) {
7677

7778
scope.inTransaction(
7879
session -> {
79-
UnversionedCascadeOne one = (UnversionedCascadeOne) session.merge( unversionedCascadeOne );
80+
UnversionedCascadeOne one = session.merge( unversionedCascadeOne );
8081

81-
// after merging, one.getManies() should still be null;
82-
// the EntityEntry loaded state should contain a PersistentCollection though.
83-
84-
assertNull( one.getManies() );
82+
assertThat( one.getManies().size() ).isEqualTo( 0 );
8583
EntityEntry eeOne = getEntityEntry( session, one );
8684
AbstractPersistentCollection maniesEEOneStateOrig = (AbstractPersistentCollection) eeOne.getLoadedValue(
8785
"manies" );
@@ -109,27 +107,7 @@ public void testMergeNullCollection(SessionFactoryScope scope) {
109107
// Ensure the same EntityEntry is being used.
110108
assertSame( eeOne, getEntityEntry( session, one ) );
111109

112-
// Ensure one.getManies() is still null.
113-
assertNull( one.getManies() );
114-
115-
// Ensure CollectionEntry for maniesEEOneStateOrig is no longer in the PersistenceContext.
116-
assertNull( getCollectionEntry( session, maniesEEOneStateOrig ) );
117-
118-
// Ensure the original CollectionEntry has role, persister, and key set to null.
119-
assertNull( ceManiesOrig.getRole() );
120-
assertNull( ceManiesOrig.getLoadedPersister() );
121-
assertNull( ceManiesOrig.getKey() );
122-
123-
// Ensure the PersistentCollection (that was previously returned by eeOne.getLoadedState())
124-
// has key and role set to null.
125-
assertNull( maniesEEOneStateOrig.getKey() );
126-
assertNull( maniesEEOneStateOrig.getRole() );
127-
128-
// Ensure eeOne.getLoadedState() returns null for collection after flush.
129-
assertNull( eeOne.getLoadedValue( "manies" ) );
130-
131-
// Ensure the session in maniesEEOneStateOrig has been unset.
132-
assertNull( maniesEEOneStateOrig.getSession() );
110+
assertThat( one.getManies().size() ).isEqualTo( 0 );
133111
}
134112
);
135113
}

hibernate-core/src/test/java/org/hibernate/orm/test/collection/dereferenced/UnversionedNoCascadeDereferencedCollectionTest.java

Lines changed: 4 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import org.hibernate.testing.orm.junit.SessionFactoryScope;
3737
import org.junit.jupiter.api.Test;
3838

39+
import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
3940
import static org.junit.jupiter.api.Assertions.assertEquals;
4041
import static org.junit.jupiter.api.Assertions.assertNotNull;
4142
import static org.junit.jupiter.api.Assertions.assertNull;
@@ -74,12 +75,10 @@ public void testMergeNullCollection(SessionFactoryScope scope) {
7475

7576
scope.inTransaction(
7677
session -> {
77-
UnversionedNoCascadeOne one = (UnversionedNoCascadeOne) session.merge( unversionedNoCascadeOne );
78+
UnversionedNoCascadeOne one = session.merge( unversionedNoCascadeOne );
7879

79-
// after merging, one.getManies() should still be null;
80-
// the EntityEntry loaded state should contain a PersistentCollection though.
80+
assertThat( one.getManies().size() ).isEqualTo( 0 );
8181

82-
assertNull( one.getManies() );
8382
EntityEntry eeOne = getEntityEntry( session, one );
8483
AbstractPersistentCollection maniesEEOneStateOrig = (AbstractPersistentCollection) eeOne.getLoadedValue(
8584
"manies" );
@@ -107,27 +106,8 @@ public void testMergeNullCollection(SessionFactoryScope scope) {
107106
// Ensure the same EntityEntry is being used.
108107
assertSame( eeOne, getEntityEntry( session, one ) );
109108

110-
// Ensure one.getManies() is still null.
111-
assertNull( one.getManies() );
112-
113-
// Ensure CollectionEntry for maniesEEOneStateOrig is no longer in the PersistenceContext.
114-
assertNull( getCollectionEntry( session, maniesEEOneStateOrig ) );
115-
116-
// Ensure the original CollectionEntry has role, persister, and key set to null.
117-
assertNull( ceManiesOrig.getRole() );
118-
assertNull( ceManiesOrig.getLoadedPersister() );
119-
assertNull( ceManiesOrig.getKey() );
109+
assertThat( one.getManies().size() ).isEqualTo( 0 );
120110

121-
// Ensure the PersistentCollection (that was previously returned by eeOne.getLoadedState())
122-
// has key and role set to null.
123-
assertNull( maniesEEOneStateOrig.getKey() );
124-
assertNull( maniesEEOneStateOrig.getRole() );
125-
126-
// Ensure eeOne.getLoadedState() returns null for collection after flush.
127-
assertNull( eeOne.getLoadedValue( "manies" ) );
128-
129-
// Ensure the session in maniesEEOneStateOrig has been unset.
130-
assertNull( maniesEEOneStateOrig.getSession() );
131111
}
132112
);
133113
}

hibernate-core/src/test/java/org/hibernate/orm/test/collection/dereferenced/VersionedCascadeDereferencedCollectionTest.java

Lines changed: 4 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import org.hibernate.testing.orm.junit.SessionFactoryScope;
3737
import org.junit.jupiter.api.Test;
3838

39+
import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
3940
import static org.junit.jupiter.api.Assertions.assertEquals;
4041
import static org.junit.jupiter.api.Assertions.assertNotNull;
4142
import static org.junit.jupiter.api.Assertions.assertNull;
@@ -76,12 +77,9 @@ public void testMergeNullCollection(SessionFactoryScope scope) {
7677

7778
scope.inTransaction(
7879
session -> {
79-
VersionedCascadeOne one = (VersionedCascadeOne) session.merge( versionedCascadeOne );
80+
VersionedCascadeOne one = session.merge( versionedCascadeOne );
8081

81-
// after merging, one.getManies() should still be null;
82-
// the EntityEntry loaded state should contain a PersistentCollection though.
83-
84-
assertNull( one.getManies() );
82+
assertThat( one.getManies().size() ).isEqualTo( 0 );
8583
EntityEntry eeOne = getEntityEntry( session, one );
8684
AbstractPersistentCollection maniesEEOneStateOrig = (AbstractPersistentCollection) eeOne.getLoadedValue(
8785
"manies" );
@@ -109,28 +107,7 @@ public void testMergeNullCollection(SessionFactoryScope scope) {
109107
// Ensure the same EntityEntry is being used.
110108
assertSame( eeOne, getEntityEntry( session, one ) );
111109

112-
// Ensure one.getManies() is still null.
113-
assertNull( one.getManies() );
114-
115-
// Ensure CollectionEntry for maniesEEOneStateOrig is no longer in the PersistenceContext.
116-
assertNull( getCollectionEntry( session, maniesEEOneStateOrig ) );
117-
118-
// Ensure the original CollectionEntry has role, persister, and key set to null.
119-
assertNull( ceManiesOrig.getRole() );
120-
assertNull( ceManiesOrig.getLoadedPersister() );
121-
assertNull( ceManiesOrig.getKey() );
122-
123-
// Ensure the PersistentCollection (that was previously returned by eeOne.getLoadedState())
124-
// has key and role set to null.
125-
assertNull( maniesEEOneStateOrig.getKey() );
126-
assertNull( maniesEEOneStateOrig.getRole() );
127-
128-
// Ensure eeOne.getLoadedState() returns null for collection after flush.
129-
assertNull( eeOne.getLoadedValue( "manies" ) );
130-
131-
// Ensure the session in maniesEEOneStateOrig has been unset.
132-
assertNull( maniesEEOneStateOrig.getSession() );
133-
110+
assertThat( one.getManies().size() ).isEqualTo( 0 );
134111
}
135112
);
136113
}

hibernate-core/src/test/java/org/hibernate/orm/test/collection/dereferenced/VersionedNoCascadeDereferencedCollectionTest.java

Lines changed: 4 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import org.hibernate.testing.orm.junit.SessionFactoryScope;
3737
import org.junit.jupiter.api.Test;
3838

39+
import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
3940
import static org.junit.jupiter.api.Assertions.assertEquals;
4041
import static org.junit.jupiter.api.Assertions.assertNotNull;
4142
import static org.junit.jupiter.api.Assertions.assertNull;
@@ -76,12 +77,9 @@ public void testMergeNullCollection(SessionFactoryScope scope) {
7677

7778
scope.inTransaction(
7879
session -> {
79-
VersionedNoCascadeOne one = (VersionedNoCascadeOne) session.merge( versionedNoCascadeOne );
80+
VersionedNoCascadeOne one = session.merge( versionedNoCascadeOne );
8081

81-
// after merging, one.getManies() should still be null;
82-
// the EntityEntry loaded state should contain a PersistentCollection though.
83-
84-
assertNull( one.getManies() );
82+
assertThat( one.getManies().size() ).isEqualTo( 0 );
8583
EntityEntry eeOne = getEntityEntry( session, one );
8684
AbstractPersistentCollection maniesEEOneStateOrig = (AbstractPersistentCollection) eeOne.getLoadedValue(
8785
"manies" );
@@ -109,27 +107,7 @@ public void testMergeNullCollection(SessionFactoryScope scope) {
109107
// Ensure the same EntityEntry is being used.
110108
assertSame( eeOne, getEntityEntry( session, one ) );
111109

112-
// Ensure one.getManies() is still null.
113-
assertNull( one.getManies() );
114-
115-
// Ensure CollectionEntry for maniesEEOneStateOrig is no longer in the PersistenceContext.
116-
assertNull( getCollectionEntry( session, maniesEEOneStateOrig ) );
117-
118-
// Ensure the original CollectionEntry has role, persister, and key set to null.
119-
assertNull( ceManiesOrig.getRole() );
120-
assertNull( ceManiesOrig.getLoadedPersister() );
121-
assertNull( ceManiesOrig.getKey() );
122-
123-
// Ensure the PersistentCollection (that was previously returned by eeOne.getLoadedState())
124-
// has key and role set to null.
125-
assertNull( maniesEEOneStateOrig.getKey() );
126-
assertNull( maniesEEOneStateOrig.getRole() );
127-
128-
// Ensure eeOne.getLoadedState() returns null for collection after flush.
129-
assertNull( eeOne.getLoadedValue( "manies" ) );
130-
131-
// Ensure the session in maniesEEOneStateOrig has been unset.
132-
assertNull( maniesEEOneStateOrig.getSession() );
110+
assertThat( one.getManies().size() ).isEqualTo( 0 );
133111
}
134112
);
135113
}

0 commit comments

Comments
 (0)