Skip to content

Commit 84662bf

Browse files
yrodieredreab8
authored andcommitted
HHH-16049 Restructure lazy-basic tests for easier re-execution and better test reports
1 parent 49fbe84 commit 84662bf

File tree

4 files changed

+182
-321
lines changed

4 files changed

+182
-321
lines changed
+112-36
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@
1212
import static org.junit.Assert.assertEquals;
1313
import static org.junit.Assert.assertNull;
1414

15+
import org.hibernate.testing.TestForIssue;
1516
import org.hibernate.testing.bytecode.enhancement.BytecodeEnhancerRunner;
1617
import org.hibernate.testing.bytecode.enhancement.CustomEnhancementContext;
1718
import org.hibernate.testing.bytecode.enhancement.EnhancerTestContext;
1819
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
19-
import org.junit.Before;
2020
import org.junit.Test;
2121
import org.junit.runner.RunWith;
2222

@@ -29,7 +29,8 @@
2929

3030
@RunWith(BytecodeEnhancerRunner.class)
3131
@CustomEnhancementContext( {EnhancerTestContext.class, NoDirtyCheckingContext.class} )
32-
public class MultiLazyBasicUpdateTest extends BaseCoreFunctionalTestCase {
32+
@TestForIssue(jiraKey = "HHH-15634")
33+
public class EagerAndLazyBasicUpdateTest extends BaseCoreFunctionalTestCase {
3334

3435
private Long entityId;
3536

@@ -38,100 +39,175 @@ public Class<?>[] getAnnotatedClasses() {
3839
return new Class<?>[] { LazyEntity.class };
3940
}
4041

41-
@Before
42-
public void prepare() {
42+
private void initNull() {
4343
doInHibernate( this::sessionFactory, s -> {
4444
LazyEntity entity = new LazyEntity();
4545
s.persist( entity );
4646
entityId = entity.getId();
4747
} );
4848
}
4949

50+
private void initNonNull() {
51+
doInHibernate( this::sessionFactory, s -> {
52+
LazyEntity entity = new LazyEntity();
53+
entity.setEagerProperty( "eager_initial" );
54+
entity.setLazyProperty1( "lazy1_initial" );
55+
entity.setLazyProperty2( "lazy2_initial" );
56+
s.persist( entity );
57+
entityId = entity.getId();
58+
} );
59+
}
60+
5061
@Test
51-
public void updateOneLazyProperty() {
52-
// null -> non-null
62+
public void updateOneLazyProperty_nullToNonNull() {
63+
initNull();
5364
doInHibernate( this::sessionFactory, s -> {
5465
LazyEntity entity = s.get( LazyEntity.class, entityId );
55-
entity.setLazyProperty1( "update1" );
66+
entity.setLazyProperty1( "lazy1_update" );
5667
} );
5768
doInHibernate( this::sessionFactory, s -> {
5869
LazyEntity entity = s.get( LazyEntity.class, entityId );
59-
assertEquals( "update1", entity.getLazyProperty1() );
70+
assertEquals( "lazy1_update", entity.getLazyProperty1() );
71+
6072
assertNull( entity.getEagerProperty() );
6173
assertNull( entity.getLazyProperty2() );
6274
} );
75+
}
6376

64-
// non-null -> non-null
77+
@Test
78+
public void updateOneLazyProperty_nonNullToNonNull() {
79+
initNonNull();
6580
doInHibernate( this::sessionFactory, s -> {
6681
LazyEntity entity = s.get( LazyEntity.class, entityId );
67-
entity.setLazyProperty1( "update2" );
82+
entity.setLazyProperty1( "lazy1_update" );
6883
} );
6984
doInHibernate( this::sessionFactory, s -> {
7085
LazyEntity entity = s.get( LazyEntity.class, entityId );
71-
assertEquals( "update2", entity.getLazyProperty1() );
72-
assertNull( entity.getLazyProperty2() );
73-
assertNull( entity.getEagerProperty() );
86+
assertEquals( "lazy1_update", entity.getLazyProperty1() );
87+
88+
assertEquals( "eager_initial", entity.getEagerProperty() );
89+
assertEquals( "lazy2_initial", entity.getLazyProperty2() );
7490
} );
7591
}
7692

7793
@Test
78-
public void updateOneEagerPropertyAndOneLazyProperty() {
79-
// null -> non-null
94+
public void updateOneLazyProperty_nonNullToNull() {
95+
initNonNull();
8096
doInHibernate( this::sessionFactory, s -> {
8197
LazyEntity entity = s.get( LazyEntity.class, entityId );
82-
entity.setEagerProperty( "eager_update1" );
83-
entity.setLazyProperty1( "update1" );
98+
entity.setLazyProperty1( null );
8499
} );
85100
doInHibernate( this::sessionFactory, s -> {
86101
LazyEntity entity = s.get( LazyEntity.class, entityId );
87-
assertEquals( "eager_update1", entity.getEagerProperty() );
88-
assertEquals( "update1", entity.getLazyProperty1() );
89-
assertNull( entity.getLazyProperty2() );
102+
assertNull( entity.getLazyProperty1() );
103+
104+
assertEquals( "eager_initial", entity.getEagerProperty() );
105+
assertEquals( "lazy2_initial", entity.getLazyProperty2() );
90106
} );
107+
}
91108

92-
// non-null -> non-null
109+
@Test
110+
public void updateOneEagerPropertyAndOneLazyProperty_nullToNonNull() {
111+
initNull();
93112
doInHibernate( this::sessionFactory, s -> {
94113
LazyEntity entity = s.get( LazyEntity.class, entityId );
95-
entity.setEagerProperty( "eager_update2" );
96-
entity.setLazyProperty1( "update2" );
114+
entity.setEagerProperty( "eager_update" );
115+
entity.setLazyProperty1( "lazy1_update" );
97116
} );
98117
doInHibernate( this::sessionFactory, s -> {
99118
LazyEntity entity = s.get( LazyEntity.class, entityId );
100-
assertEquals( "eager_update2", entity.getEagerProperty() );
101-
assertEquals( "update2", entity.getLazyProperty1() );
119+
assertEquals( "eager_update", entity.getEagerProperty() );
120+
assertEquals( "lazy1_update", entity.getLazyProperty1() );
121+
102122
assertNull( entity.getLazyProperty2() );
103123
} );
104124
}
105125

106126
@Test
107-
public void updateAllLazyProperties() {
108-
// null -> non-null
127+
public void updateOneEagerPropertyAndOneLazyProperty_nonNullToNonNull() {
128+
initNonNull();
109129
doInHibernate( this::sessionFactory, s -> {
110130
LazyEntity entity = s.get( LazyEntity.class, entityId );
111-
entity.setLazyProperty1( "update1" );
112-
entity.setLazyProperty2( "update2_1" );
131+
entity.setEagerProperty( "eager_update" );
132+
entity.setLazyProperty1( "lazy1_update" );
133+
} );
134+
doInHibernate( this::sessionFactory, s -> {
135+
LazyEntity entity = s.get( LazyEntity.class, entityId );
136+
assertEquals( "eager_update", entity.getEagerProperty() );
137+
assertEquals( "lazy1_update", entity.getLazyProperty1() );
138+
139+
assertEquals( "lazy2_initial", entity.getLazyProperty2() );
140+
} );
141+
}
142+
143+
@Test
144+
public void updateOneEagerPropertyAndOneLazyProperty_nonNullToNull() {
145+
initNonNull();
146+
doInHibernate( this::sessionFactory, s -> {
147+
LazyEntity entity = s.get( LazyEntity.class, entityId );
148+
entity.setEagerProperty( null );
149+
entity.setLazyProperty1( null );
113150
} );
114151
doInHibernate( this::sessionFactory, s -> {
115152
LazyEntity entity = s.get( LazyEntity.class, entityId );
116-
assertEquals( "update1", entity.getLazyProperty1() );
117-
assertEquals( "update2_1", entity.getLazyProperty2() );
118153
assertNull( entity.getEagerProperty() );
154+
assertNull( entity.getLazyProperty1() );
155+
156+
assertEquals( "lazy2_initial", entity.getLazyProperty2() );
119157
} );
158+
}
120159

121-
// non-null -> non-null
160+
@Test
161+
public void updateAllLazyProperties_nullToNonNull() {
162+
initNull();
122163
doInHibernate( this::sessionFactory, s -> {
123164
LazyEntity entity = s.get( LazyEntity.class, entityId );
124-
entity.setLazyProperty1( "update2" );
125-
entity.setLazyProperty2( "update2_2" );
165+
entity.setLazyProperty1( "lazy1_update" );
166+
entity.setLazyProperty2( "lazy2_update" );
126167
} );
127168
doInHibernate( this::sessionFactory, s -> {
128169
LazyEntity entity = s.get( LazyEntity.class, entityId );
129-
assertEquals( "update2", entity.getLazyProperty1() );
130-
assertEquals( "update2_2", entity.getLazyProperty2() );
170+
assertEquals( "lazy1_update", entity.getLazyProperty1() );
171+
assertEquals( "lazy2_update", entity.getLazyProperty2() );
172+
131173
assertNull( entity.getEagerProperty() );
132174
} );
133175
}
134176

177+
@Test
178+
public void updateAllLazyProperties_nonNullToNonNull() {
179+
initNonNull();
180+
doInHibernate( this::sessionFactory, s -> {
181+
LazyEntity entity = s.get( LazyEntity.class, entityId );
182+
entity.setLazyProperty1( "lazy1_update" );
183+
entity.setLazyProperty2( "lazy2_update" );
184+
} );
185+
doInHibernate( this::sessionFactory, s -> {
186+
LazyEntity entity = s.get( LazyEntity.class, entityId );
187+
assertEquals( "lazy1_update", entity.getLazyProperty1() );
188+
assertEquals( "lazy2_update", entity.getLazyProperty2() );
189+
190+
assertEquals( "eager_initial", entity.getEagerProperty() );
191+
} );
192+
}
193+
194+
@Test
195+
public void updateAllLazyProperties_nonNullToNull() {
196+
initNonNull();
197+
doInHibernate( this::sessionFactory, s -> {
198+
LazyEntity entity = s.get( LazyEntity.class, entityId );
199+
entity.setLazyProperty1( null );
200+
entity.setLazyProperty2( null );
201+
} );
202+
doInHibernate( this::sessionFactory, s -> {
203+
LazyEntity entity = s.get( LazyEntity.class, entityId );
204+
assertNull( entity.getLazyProperty1() );
205+
assertNull( entity.getLazyProperty2() );
206+
207+
assertEquals( "eager_initial", entity.getEagerProperty() );
208+
} );
209+
}
210+
135211
@Entity
136212
@Table(name = "LAZY_ENTITY")
137213
private static class LazyEntity {

hibernate-core/src/test/java/org/hibernate/test/bytecode/enhancement/lazy/basic/MultiLazyBasicUpdateToNullTest.java

-146
This file was deleted.

0 commit comments

Comments
 (0)