Skip to content

Commit ad55143

Browse files
dreab8beikov
authored andcommitted
HHH-17049 Add more test for issue
(cherry picked from commit de3008e)
1 parent 1fef8c3 commit ad55143

14 files changed

+2762
-1
lines changed

hibernate-core/src/test/java/org/hibernate/orm/test/bytecode/enhancement/cascade/circle/AbstractMultiPathCircleCascadeTest.java

Lines changed: 702 additions & 0 deletions
Large diffs are not rendered by default.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
/*
2+
* Hibernate, Relational Persistence for Idiomatic Java
3+
*
4+
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
5+
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
6+
*/
7+
package org.hibernate.orm.test.bytecode.enhancement.cascade.circle;
8+
9+
import org.hibernate.cfg.Configuration;
10+
import org.hibernate.cfg.Environment;
11+
import org.hibernate.orm.test.bytecode.enhancement.lazy.NoDirtyCheckingContext;
12+
import org.hibernate.orm.test.bytecode.enhancement.lazy.proxy.inlinedirtychecking.DirtyCheckEnhancementContext;
13+
14+
import org.hibernate.testing.bytecode.enhancement.BytecodeEnhancerRunner;
15+
import org.hibernate.testing.bytecode.enhancement.CustomEnhancementContext;
16+
import org.junit.runner.RunWith;
17+
18+
/**
19+
* @author Gail Badner
20+
*/
21+
@RunWith(BytecodeEnhancerRunner.class)
22+
@CustomEnhancementContext({ NoDirtyCheckingContext.class, DirtyCheckEnhancementContext.class })
23+
public class MultiPathCircleCascadeCheckNullFalseDelayedInsertTest extends AbstractMultiPathCircleCascadeTest {
24+
@Override
25+
protected String[] getOrmXmlFiles() {
26+
return new String[] {
27+
"org/hibernate/orm/test/cascade/circle/MultiPathCircleCascadeDelayedInsert.hbm.xml"
28+
};
29+
}
30+
31+
@Override
32+
protected void configure(Configuration configuration) {
33+
configuration.setProperty( Environment.GENERATE_STATISTICS, "true" );
34+
configuration.setProperty( Environment.STATEMENT_BATCH_SIZE, "0" );
35+
configuration.setProperty( Environment.CHECK_NULLABILITY, "false" );
36+
}
37+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
/*
2+
* Hibernate, Relational Persistence for Idiomatic Java
3+
*
4+
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
5+
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
6+
*/
7+
package org.hibernate.orm.test.bytecode.enhancement.cascade.circle;
8+
9+
import org.hibernate.cfg.Configuration;
10+
import org.hibernate.cfg.Environment;
11+
import org.hibernate.orm.test.bytecode.enhancement.lazy.NoDirtyCheckingContext;
12+
import org.hibernate.orm.test.bytecode.enhancement.lazy.proxy.inlinedirtychecking.DirtyCheckEnhancementContext;
13+
14+
import org.hibernate.testing.bytecode.enhancement.BytecodeEnhancerRunner;
15+
import org.hibernate.testing.bytecode.enhancement.CustomEnhancementContext;
16+
import org.junit.runner.RunWith;
17+
18+
/**
19+
* @author Gail Badner
20+
*/
21+
@RunWith(BytecodeEnhancerRunner.class)
22+
@CustomEnhancementContext({ NoDirtyCheckingContext.class, DirtyCheckEnhancementContext.class })
23+
public class MultiPathCircleCascadeCheckNullTrueDelayedInsertTest extends AbstractMultiPathCircleCascadeTest {
24+
@Override
25+
protected String[] getOrmXmlFiles() {
26+
return new String[] {
27+
"org/hibernate/orm/test/cascade/circle/MultiPathCircleCascadeDelayedInsert.hbm.xml"
28+
};
29+
}
30+
31+
@Override
32+
protected void configure(Configuration configuration) {
33+
configuration.setProperty( Environment.GENERATE_STATISTICS, "true" );
34+
configuration.setProperty( Environment.STATEMENT_BATCH_SIZE, "0" );
35+
configuration.setProperty( Environment.CHECK_NULLABILITY, "true" );
36+
}
37+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
/*
2+
* Hibernate, Relational Persistence for Idiomatic Java
3+
*
4+
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
5+
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
6+
*/
7+
package org.hibernate.orm.test.bytecode.enhancement.cascade.circle;
8+
9+
import org.hibernate.cfg.Configuration;
10+
import org.hibernate.cfg.Environment;
11+
import org.hibernate.orm.test.bytecode.enhancement.lazy.NoDirtyCheckingContext;
12+
import org.hibernate.orm.test.bytecode.enhancement.lazy.proxy.inlinedirtychecking.DirtyCheckEnhancementContext;
13+
14+
import org.hibernate.testing.bytecode.enhancement.BytecodeEnhancerRunner;
15+
import org.hibernate.testing.bytecode.enhancement.CustomEnhancementContext;
16+
import org.junit.runner.RunWith;
17+
18+
/**
19+
* @author Gail Badner
20+
*/
21+
@RunWith(BytecodeEnhancerRunner.class)
22+
@CustomEnhancementContext({ NoDirtyCheckingContext.class, DirtyCheckEnhancementContext.class })
23+
public class MultiPathCircleCascadeCheckNullibilityFalseTest extends AbstractMultiPathCircleCascadeTest {
24+
25+
@Override
26+
protected String[] getOrmXmlFiles() {
27+
return new String[] {
28+
"org/hibernate/orm/test/cascade/circle/MultiPathCircleCascade.hbm.xml"
29+
};
30+
}
31+
32+
@Override
33+
protected void configure(Configuration configuration) {
34+
configuration.setProperty( Environment.GENERATE_STATISTICS, "true" );
35+
configuration.setProperty( Environment.STATEMENT_BATCH_SIZE, "0" );
36+
configuration.setProperty( Environment.CHECK_NULLABILITY, "false" );
37+
}
38+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
/*
2+
* Hibernate, Relational Persistence for Idiomatic Java
3+
*
4+
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
5+
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
6+
*/
7+
package org.hibernate.orm.test.bytecode.enhancement.cascade.circle;
8+
9+
import org.hibernate.cfg.Configuration;
10+
import org.hibernate.cfg.Environment;
11+
import org.hibernate.orm.test.bytecode.enhancement.lazy.NoDirtyCheckingContext;
12+
import org.hibernate.orm.test.bytecode.enhancement.lazy.proxy.inlinedirtychecking.DirtyCheckEnhancementContext;
13+
14+
import org.hibernate.testing.bytecode.enhancement.BytecodeEnhancerRunner;
15+
import org.hibernate.testing.bytecode.enhancement.CustomEnhancementContext;
16+
import org.junit.runner.RunWith;
17+
18+
/**
19+
* @author Gail Badner
20+
*/
21+
@RunWith(BytecodeEnhancerRunner.class)
22+
@CustomEnhancementContext({ NoDirtyCheckingContext.class, DirtyCheckEnhancementContext.class })
23+
public class MultiPathCircleCascadeCheckNullibilityTrueTest extends AbstractMultiPathCircleCascadeTest {
24+
@Override
25+
protected String[] getOrmXmlFiles() {
26+
return new String[] {
27+
"org/hibernate/orm/test/cascade/circle/MultiPathCircleCascade.hbm.xml"
28+
};
29+
}
30+
31+
@Override
32+
protected void configure(Configuration configuration) {
33+
configuration.setProperty( Environment.GENERATE_STATISTICS, "true" );
34+
configuration.setProperty( Environment.STATEMENT_BATCH_SIZE, "0" );
35+
configuration.setProperty( Environment.CHECK_NULLABILITY, "true" );
36+
}
37+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
/*
2+
* Hibernate, Relational Persistence for Idiomatic Java
3+
*
4+
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
5+
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
6+
*/
7+
package org.hibernate.orm.test.bytecode.enhancement.cascade.circle;
8+
9+
import org.hibernate.cfg.Configuration;
10+
import org.hibernate.cfg.Environment;
11+
import org.hibernate.orm.test.bytecode.enhancement.lazy.NoDirtyCheckingContext;
12+
import org.hibernate.orm.test.bytecode.enhancement.lazy.proxy.inlinedirtychecking.DirtyCheckEnhancementContext;
13+
14+
import org.hibernate.testing.bytecode.enhancement.BytecodeEnhancerRunner;
15+
import org.hibernate.testing.bytecode.enhancement.CustomEnhancementContext;
16+
import org.junit.runner.RunWith;
17+
18+
/**
19+
* @author Gail Badner
20+
*/
21+
@RunWith(BytecodeEnhancerRunner.class)
22+
@CustomEnhancementContext({ NoDirtyCheckingContext.class, DirtyCheckEnhancementContext.class })
23+
public class MultiPathCircleCascadeDelayedInsertTest extends AbstractMultiPathCircleCascadeTest {
24+
@Override
25+
protected String[] getOrmXmlFiles() {
26+
return new String[] {
27+
"org/hibernate/orm/test/cascade/circle/MultiPathCircleCascadeDelayedInsert.hbm.xml"
28+
};
29+
}
30+
31+
@Override
32+
protected void configure(Configuration configuration) {
33+
configuration.setProperty( Environment.GENERATE_STATISTICS, "true" );
34+
configuration.setProperty( Environment.STATEMENT_BATCH_SIZE, "0" );
35+
}
36+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
/*
2+
* Hibernate, Relational Persistence for Idiomatic Java
3+
*
4+
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
5+
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
6+
*/
7+
package org.hibernate.orm.test.bytecode.enhancement.cascade.circle;
8+
9+
import org.hibernate.cfg.Configuration;
10+
import org.hibernate.cfg.Environment;
11+
import org.hibernate.orm.test.bytecode.enhancement.lazy.NoDirtyCheckingContext;
12+
import org.hibernate.orm.test.bytecode.enhancement.lazy.proxy.inlinedirtychecking.DirtyCheckEnhancementContext;
13+
14+
import org.hibernate.testing.bytecode.enhancement.BytecodeEnhancerRunner;
15+
import org.hibernate.testing.bytecode.enhancement.CustomEnhancementContext;
16+
import org.junit.runner.RunWith;
17+
18+
/**
19+
* The test case uses the following model:
20+
* <p>
21+
* <- ->
22+
* -- (N : 0,1) -- Tour
23+
* | <- ->
24+
* | -- (1 : N) -- (pickup) ----
25+
* -> | | |
26+
* Route -- (1 : N) -- Node Transport
27+
* | <- -> |
28+
* -- (1 : N) -- (delivery) --
29+
* <p>
30+
* Arrows indicate the direction of cascade-merge, cascade-save, and cascade-save-or-update
31+
* <p>
32+
* It reproduced the following issues:
33+
* http://opensource.atlassian.com/projects/hibernate/browse/HHH-3046
34+
* http://opensource.atlassian.com/projects/hibernate/browse/HHH-3810
35+
* <p>
36+
* This tests that cascades are done properly from each entity.
37+
*
38+
* @author Pavol Zibrita, Gail Badner
39+
*/
40+
@RunWith(BytecodeEnhancerRunner.class)
41+
@CustomEnhancementContext({ NoDirtyCheckingContext.class, DirtyCheckEnhancementContext.class })
42+
public class MultiPathCircleCascadeTest extends AbstractMultiPathCircleCascadeTest {
43+
@Override
44+
protected String[] getOrmXmlFiles() {
45+
return new String[] {
46+
"org/hibernate/orm/test/cascade/circle/MultiPathCircleCascade.hbm.xml"
47+
};
48+
}
49+
50+
@Override
51+
protected void configure(Configuration configuration) {
52+
configuration.setProperty( Environment.GENERATE_STATISTICS, "true" );
53+
configuration.setProperty( Environment.STATEMENT_BATCH_SIZE, "0" );
54+
}
55+
}

0 commit comments

Comments
 (0)