Skip to content

Commit fab9834

Browse files
committed
HHH-18389 Add test for issue
1 parent 93af5f2 commit fab9834

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
@@ -17,6 +17,7 @@
1717
import org.hibernate.testing.orm.junit.SessionFactoryScope;
1818
import org.junit.jupiter.api.Test;
1919

20+
import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
2021
import static org.junit.jupiter.api.Assertions.assertEquals;
2122
import static org.junit.jupiter.api.Assertions.assertNotNull;
2223
import static org.junit.jupiter.api.Assertions.assertNull;
@@ -57,12 +58,9 @@ public void testMergeNullCollection(SessionFactoryScope scope) {
5758

5859
scope.inTransaction(
5960
session -> {
60-
UnversionedCascadeOne one = (UnversionedCascadeOne) session.merge( unversionedCascadeOne );
61+
UnversionedCascadeOne one = session.merge( unversionedCascadeOne );
6162

62-
// after merging, one.getManies() should still be null;
63-
// the EntityEntry loaded state should contain a PersistentCollection though.
64-
65-
assertNull( one.getManies() );
63+
assertThat( one.getManies().size() ).isEqualTo( 0 );
6664
EntityEntry eeOne = getEntityEntry( session, one );
6765
AbstractPersistentCollection maniesEEOneStateOrig = (AbstractPersistentCollection) eeOne.getLoadedValue(
6866
"manies" );
@@ -90,27 +88,7 @@ public void testMergeNullCollection(SessionFactoryScope scope) {
9088
// Ensure the same EntityEntry is being used.
9189
assertSame( eeOne, getEntityEntry( session, one ) );
9290

93-
// Ensure one.getManies() is still null.
94-
assertNull( one.getManies() );
95-
96-
// Ensure CollectionEntry for maniesEEOneStateOrig is no longer in the PersistenceContext.
97-
assertNull( getCollectionEntry( session, maniesEEOneStateOrig ) );
98-
99-
// Ensure the original CollectionEntry has role, persister, and key set to null.
100-
assertNull( ceManiesOrig.getRole() );
101-
assertNull( ceManiesOrig.getLoadedPersister() );
102-
assertNull( ceManiesOrig.getKey() );
103-
104-
// Ensure the PersistentCollection (that was previously returned by eeOne.getLoadedState())
105-
// has key and role set to null.
106-
assertNull( maniesEEOneStateOrig.getKey() );
107-
assertNull( maniesEEOneStateOrig.getRole() );
108-
109-
// Ensure eeOne.getLoadedState() returns null for collection after flush.
110-
assertNull( eeOne.getLoadedValue( "manies" ) );
111-
112-
// Ensure the session in maniesEEOneStateOrig has been unset.
113-
assertNull( maniesEEOneStateOrig.getSession() );
91+
assertThat( one.getManies().size() ).isEqualTo( 0 );
11492
}
11593
);
11694
}

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
@@ -17,6 +17,7 @@
1717
import org.hibernate.testing.orm.junit.SessionFactoryScope;
1818
import org.junit.jupiter.api.Test;
1919

20+
import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
2021
import static org.junit.jupiter.api.Assertions.assertEquals;
2122
import static org.junit.jupiter.api.Assertions.assertNotNull;
2223
import static org.junit.jupiter.api.Assertions.assertNull;
@@ -55,12 +56,10 @@ public void testMergeNullCollection(SessionFactoryScope scope) {
5556

5657
scope.inTransaction(
5758
session -> {
58-
UnversionedNoCascadeOne one = (UnversionedNoCascadeOne) session.merge( unversionedNoCascadeOne );
59+
UnversionedNoCascadeOne one = session.merge( unversionedNoCascadeOne );
5960

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

63-
assertNull( one.getManies() );
6463
EntityEntry eeOne = getEntityEntry( session, one );
6564
AbstractPersistentCollection maniesEEOneStateOrig = (AbstractPersistentCollection) eeOne.getLoadedValue(
6665
"manies" );
@@ -88,27 +87,8 @@ public void testMergeNullCollection(SessionFactoryScope scope) {
8887
// Ensure the same EntityEntry is being used.
8988
assertSame( eeOne, getEntityEntry( session, one ) );
9089

91-
// Ensure one.getManies() is still null.
92-
assertNull( one.getManies() );
93-
94-
// Ensure CollectionEntry for maniesEEOneStateOrig is no longer in the PersistenceContext.
95-
assertNull( getCollectionEntry( session, maniesEEOneStateOrig ) );
96-
97-
// Ensure the original CollectionEntry has role, persister, and key set to null.
98-
assertNull( ceManiesOrig.getRole() );
99-
assertNull( ceManiesOrig.getLoadedPersister() );
100-
assertNull( ceManiesOrig.getKey() );
90+
assertThat( one.getManies().size() ).isEqualTo( 0 );
10191

102-
// Ensure the PersistentCollection (that was previously returned by eeOne.getLoadedState())
103-
// has key and role set to null.
104-
assertNull( maniesEEOneStateOrig.getKey() );
105-
assertNull( maniesEEOneStateOrig.getRole() );
106-
107-
// Ensure eeOne.getLoadedState() returns null for collection after flush.
108-
assertNull( eeOne.getLoadedValue( "manies" ) );
109-
110-
// Ensure the session in maniesEEOneStateOrig has been unset.
111-
assertNull( maniesEEOneStateOrig.getSession() );
11292
}
11393
);
11494
}

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
@@ -17,6 +17,7 @@
1717
import org.hibernate.testing.orm.junit.SessionFactoryScope;
1818
import org.junit.jupiter.api.Test;
1919

20+
import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
2021
import static org.junit.jupiter.api.Assertions.assertEquals;
2122
import static org.junit.jupiter.api.Assertions.assertNotNull;
2223
import static org.junit.jupiter.api.Assertions.assertNull;
@@ -57,12 +58,9 @@ public void testMergeNullCollection(SessionFactoryScope scope) {
5758

5859
scope.inTransaction(
5960
session -> {
60-
VersionedCascadeOne one = (VersionedCascadeOne) session.merge( versionedCascadeOne );
61+
VersionedCascadeOne one = session.merge( versionedCascadeOne );
6162

62-
// after merging, one.getManies() should still be null;
63-
// the EntityEntry loaded state should contain a PersistentCollection though.
64-
65-
assertNull( one.getManies() );
63+
assertThat( one.getManies().size() ).isEqualTo( 0 );
6664
EntityEntry eeOne = getEntityEntry( session, one );
6765
AbstractPersistentCollection maniesEEOneStateOrig = (AbstractPersistentCollection) eeOne.getLoadedValue(
6866
"manies" );
@@ -90,28 +88,7 @@ public void testMergeNullCollection(SessionFactoryScope scope) {
9088
// Ensure the same EntityEntry is being used.
9189
assertSame( eeOne, getEntityEntry( session, one ) );
9290

93-
// Ensure one.getManies() is still null.
94-
assertNull( one.getManies() );
95-
96-
// Ensure CollectionEntry for maniesEEOneStateOrig is no longer in the PersistenceContext.
97-
assertNull( getCollectionEntry( session, maniesEEOneStateOrig ) );
98-
99-
// Ensure the original CollectionEntry has role, persister, and key set to null.
100-
assertNull( ceManiesOrig.getRole() );
101-
assertNull( ceManiesOrig.getLoadedPersister() );
102-
assertNull( ceManiesOrig.getKey() );
103-
104-
// Ensure the PersistentCollection (that was previously returned by eeOne.getLoadedState())
105-
// has key and role set to null.
106-
assertNull( maniesEEOneStateOrig.getKey() );
107-
assertNull( maniesEEOneStateOrig.getRole() );
108-
109-
// Ensure eeOne.getLoadedState() returns null for collection after flush.
110-
assertNull( eeOne.getLoadedValue( "manies" ) );
111-
112-
// Ensure the session in maniesEEOneStateOrig has been unset.
113-
assertNull( maniesEEOneStateOrig.getSession() );
114-
91+
assertThat( one.getManies().size() ).isEqualTo( 0 );
11592
}
11693
);
11794
}

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
@@ -17,6 +17,7 @@
1717
import org.hibernate.testing.orm.junit.SessionFactoryScope;
1818
import org.junit.jupiter.api.Test;
1919

20+
import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
2021
import static org.junit.jupiter.api.Assertions.assertEquals;
2122
import static org.junit.jupiter.api.Assertions.assertNotNull;
2223
import static org.junit.jupiter.api.Assertions.assertNull;
@@ -57,12 +58,9 @@ public void testMergeNullCollection(SessionFactoryScope scope) {
5758

5859
scope.inTransaction(
5960
session -> {
60-
VersionedNoCascadeOne one = (VersionedNoCascadeOne) session.merge( versionedNoCascadeOne );
61+
VersionedNoCascadeOne one = session.merge( versionedNoCascadeOne );
6162

62-
// after merging, one.getManies() should still be null;
63-
// the EntityEntry loaded state should contain a PersistentCollection though.
64-
65-
assertNull( one.getManies() );
63+
assertThat( one.getManies().size() ).isEqualTo( 0 );
6664
EntityEntry eeOne = getEntityEntry( session, one );
6765
AbstractPersistentCollection maniesEEOneStateOrig = (AbstractPersistentCollection) eeOne.getLoadedValue(
6866
"manies" );
@@ -90,27 +88,7 @@ public void testMergeNullCollection(SessionFactoryScope scope) {
9088
// Ensure the same EntityEntry is being used.
9189
assertSame( eeOne, getEntityEntry( session, one ) );
9290

93-
// Ensure one.getManies() is still null.
94-
assertNull( one.getManies() );
95-
96-
// Ensure CollectionEntry for maniesEEOneStateOrig is no longer in the PersistenceContext.
97-
assertNull( getCollectionEntry( session, maniesEEOneStateOrig ) );
98-
99-
// Ensure the original CollectionEntry has role, persister, and key set to null.
100-
assertNull( ceManiesOrig.getRole() );
101-
assertNull( ceManiesOrig.getLoadedPersister() );
102-
assertNull( ceManiesOrig.getKey() );
103-
104-
// Ensure the PersistentCollection (that was previously returned by eeOne.getLoadedState())
105-
// has key and role set to null.
106-
assertNull( maniesEEOneStateOrig.getKey() );
107-
assertNull( maniesEEOneStateOrig.getRole() );
108-
109-
// Ensure eeOne.getLoadedState() returns null for collection after flush.
110-
assertNull( eeOne.getLoadedValue( "manies" ) );
111-
112-
// Ensure the session in maniesEEOneStateOrig has been unset.
113-
assertNull( maniesEEOneStateOrig.getSession() );
91+
assertThat( one.getManies().size() ).isEqualTo( 0 );
11492
}
11593
);
11694
}

0 commit comments

Comments
 (0)