From b82d90684171163df6471ef659821a5befa62b25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yoann=20Rodi=C3=A8re?= Date: Wed, 26 Oct 2022 13:23:32 +0200 Subject: [PATCH] HHH-15634 Test updating a single lazy property with no lazy group --- .../lazy/basic/LazyBasicFieldAccessTest.java | 36 +++++++++++++++++-- .../basic/LazyBasicPropertyAccessTest.java | 36 +++++++++++++++++-- 2 files changed, 66 insertions(+), 6 deletions(-) diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/bytecode/enhancement/lazy/basic/LazyBasicFieldAccessTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/bytecode/enhancement/lazy/basic/LazyBasicFieldAccessTest.java index 000e339026..08579d956a 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/bytecode/enhancement/lazy/basic/LazyBasicFieldAccessTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/bytecode/enhancement/lazy/basic/LazyBasicFieldAccessTest.java @@ -9,6 +9,7 @@ package org.hibernate.orm.test.bytecode.enhancement.lazy.basic; import org.hibernate.cfg.AvailableSettings; import org.hibernate.cfg.Configuration; +import org.hibernate.testing.TestForIssue; import org.hibernate.testing.bytecode.enhancement.BytecodeEnhancerRunner; import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase; import org.junit.Assert; @@ -63,7 +64,37 @@ public class LazyBasicFieldAccessTest extends BaseCoreFunctionalTestCase { } @Test - public void execute() { + public void testAttachedUpdate() { + doInHibernate( this::sessionFactory, s -> { + entity = s.get( LazyEntity.class, entityId ); + + Assert.assertFalse( isPropertyInitialized( entity, "description" ) ); + checkDirtyTracking( entity ); + + assertEquals( "desc", entity.description ); + assertTrue( isPropertyInitialized( entity, "description" ) ); + } ); + + doInHibernate( this::sessionFactory, s -> { + entity = s.get( LazyEntity.class, entityId ); + Assert.assertFalse( isPropertyInitialized( entity, "description" ) ); + entity.description = "desc1"; + + checkDirtyTracking( entity, "description" ); + + assertEquals( "desc1", entity.description ); + assertTrue( isPropertyInitialized( entity, "description" ) ); + } ); + + doInHibernate( this::sessionFactory, s -> { + entity = s.get( LazyEntity.class, entityId ); + assertEquals( "desc1", entity.description ); + } ); + } + + @Test + @TestForIssue(jiraKey = "HHH-11882") + public void testDetachedUpdate() { doInHibernate( this::sessionFactory, s -> { entity = s.get( LazyEntity.class, entityId ); @@ -78,7 +109,6 @@ public class LazyBasicFieldAccessTest extends BaseCoreFunctionalTestCase { entity.description = "desc1"; s.update( entity ); - // Assert.assertFalse( Hibernate.isPropertyInitialized( entity, "description" ) ); checkDirtyTracking( entity, "description" ); assertEquals( "desc1", entity.description ); @@ -102,7 +132,7 @@ public class LazyBasicFieldAccessTest extends BaseCoreFunctionalTestCase { } ); doInHibernate( this::sessionFactory, s -> { - LazyEntity entity = s.get( LazyEntity.class, entityId ); + entity = s.get( LazyEntity.class, entityId ); assertEquals( "desc2", entity.description ); } ); } diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/bytecode/enhancement/lazy/basic/LazyBasicPropertyAccessTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/bytecode/enhancement/lazy/basic/LazyBasicPropertyAccessTest.java index de3c95fd65..3f627ca869 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/bytecode/enhancement/lazy/basic/LazyBasicPropertyAccessTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/bytecode/enhancement/lazy/basic/LazyBasicPropertyAccessTest.java @@ -9,6 +9,7 @@ package org.hibernate.orm.test.bytecode.enhancement.lazy.basic; import org.hibernate.cfg.AvailableSettings; import org.hibernate.cfg.Configuration; +import org.hibernate.testing.TestForIssue; import org.hibernate.testing.bytecode.enhancement.BytecodeEnhancerRunner; import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase; import org.junit.Assert; @@ -60,7 +61,37 @@ public class LazyBasicPropertyAccessTest extends BaseCoreFunctionalTestCase { } @Test - public void test() { + public void testAttachedUpdate() { + doInHibernate( this::sessionFactory, s -> { + entity = s.get( LazyEntity.class, entityId ); + + Assert.assertFalse( isPropertyInitialized( entity, "description" ) ); + checkDirtyTracking( entity ); + + assertEquals( "desc", entity.getDescription() ); + assertTrue( isPropertyInitialized( entity, "description" ) ); + } ); + + doInHibernate( this::sessionFactory, s -> { + entity = s.get( LazyEntity.class, entityId ); + Assert.assertFalse( isPropertyInitialized( entity, "description" ) ); + entity.setDescription( "desc1" ); + + checkDirtyTracking( entity, "description" ); + + assertEquals( "desc1", entity.getDescription() ); + assertTrue( isPropertyInitialized( entity, "description" ) ); + } ); + + doInHibernate( this::sessionFactory, s -> { + entity = s.get( LazyEntity.class, entityId ); + assertEquals( "desc1", entity.getDescription() ); + } ); + } + + @Test + @TestForIssue(jiraKey = "HHH-11882") + public void testDetachedUpdate() { doInHibernate( this::sessionFactory, s -> { entity = s.get( LazyEntity.class, entityId ); @@ -75,7 +106,6 @@ public class LazyBasicPropertyAccessTest extends BaseCoreFunctionalTestCase { entity.setDescription( "desc1" ); s.update( entity ); - //Assert.assertFalse( Hibernate.isPropertyInitialized( entity, "description" ) ); checkDirtyTracking( entity, "description" ); assertEquals( "desc1", entity.getDescription() ); @@ -99,7 +129,7 @@ public class LazyBasicPropertyAccessTest extends BaseCoreFunctionalTestCase { } ); doInHibernate( this::sessionFactory, s -> { - LazyEntity entity = s.get( LazyEntity.class, entityId ); + entity = s.get( LazyEntity.class, entityId ); assertEquals( "desc2", entity.getDescription() ); } ); }