Skip to content

Commit 641afbc

Browse files
mbelladebeikov
authored andcommitted
HHH-17550 Add test for issue
1 parent a060a3b commit 641afbc

File tree

1 file changed

+46
-25
lines changed

1 file changed

+46
-25
lines changed

hibernate-core/src/test/java/org/hibernate/orm/test/foreignkeys/disabled/DefaultConstraintModeTest.java

Lines changed: 46 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -6,69 +6,90 @@
66
*/
77
package org.hibernate.orm.test.foreignkeys.disabled;
88

9-
import static org.hamcrest.core.Is.is;
10-
import static org.junit.Assert.assertThat;
11-
9+
import java.util.List;
1210
import java.util.stream.StreamSupport;
1311

14-
import jakarta.persistence.Entity;
15-
import jakarta.persistence.Id;
16-
import jakarta.persistence.JoinColumn;
17-
import jakarta.persistence.ManyToOne;
18-
1912
import org.hibernate.boot.Metadata;
2013
import org.hibernate.boot.MetadataSources;
2114
import org.hibernate.boot.registry.StandardServiceRegistry;
2215
import org.hibernate.cfg.Environment;
2316
import org.hibernate.mapping.Table;
24-
import org.hibernate.testing.TestForIssue;
17+
2518
import org.hibernate.testing.junit4.BaseUnitTestCase;
19+
import org.hibernate.testing.orm.junit.Jira;
2620
import org.hibernate.testing.util.ServiceRegistryUtil;
2721
import org.junit.Test;
2822

23+
import jakarta.persistence.ElementCollection;
24+
import jakarta.persistence.Entity;
25+
import jakarta.persistence.Id;
26+
import jakarta.persistence.Inheritance;
27+
import jakarta.persistence.InheritanceType;
28+
import jakarta.persistence.JoinColumn;
29+
import jakarta.persistence.ManyToMany;
30+
import jakarta.persistence.ManyToOne;
31+
import jakarta.persistence.OneToMany;
32+
33+
import static org.hamcrest.core.Is.is;
34+
import static org.junit.Assert.assertThat;
35+
2936
/**
3037
* @author Yanming Zhou
3138
*/
39+
@Jira( "https://hibernate.atlassian.net/browse/HHH-14253" )
40+
@Jira( "https://hibernate.atlassian.net/browse/HHH-17550" )
3241
public class DefaultConstraintModeTest extends BaseUnitTestCase {
33-
34-
private static final String TABLE_NAME = "TestEntity";
35-
3642
@Test
37-
@TestForIssue(jiraKey = "HHH-14253")
3843
public void testForeignKeyShouldNotBeCreated() {
39-
testForeignKeyCreation(false);
44+
testForeignKeyCreation( false );
4045
}
4146

4247
@Test
43-
@TestForIssue(jiraKey = "HHH-14253")
4448
public void testForeignKeyShouldBeCreated() {
45-
testForeignKeyCreation(true);
49+
testForeignKeyCreation( true );
4650
}
4751

4852
private void testForeignKeyCreation(boolean created) {
4953
try (StandardServiceRegistry ssr = ServiceRegistryUtil.serviceRegistryBuilder()
50-
.applySetting(Environment.HBM2DDL_DEFAULT_CONSTRAINT_MODE, created ? "CONSTRAINT" : "NO_CONSTRAINT").build()) {
51-
Metadata metadata = new MetadataSources( ssr ).addAnnotatedClass( TestEntity.class ).buildMetadata();
52-
assertThat( findTable( metadata, TABLE_NAME ).getForeignKeys().isEmpty(), is( !created ) );
54+
.applySetting( Environment.HBM2DDL_DEFAULT_CONSTRAINT_MODE, created ? "CONSTRAINT" : "NO_CONSTRAINT" )
55+
.build()) {
56+
Metadata metadata = new MetadataSources( ssr ).addAnnotatedClasses( TestEntity.class, ChildEntity.class ).buildMetadata();
57+
assertThat( findTable( metadata, "TestEntity" ).getForeignKeys().isEmpty(), is( !created ) );
58+
assertThat( findTable( metadata, "ChildEntity" ).getForeignKeys().isEmpty(), is( !created ) );
5359
}
5460
}
5561

5662
private static Table findTable(Metadata metadata, String tableName) {
57-
return StreamSupport.stream(metadata.getDatabase().getNamespaces().spliterator(), false)
58-
.flatMap(namespace -> namespace.getTables().stream()).filter(t -> t.getName().equals(tableName))
59-
.findFirst().orElse(null);
63+
return StreamSupport.stream( metadata.getDatabase().getNamespaces().spliterator(), false )
64+
.flatMap( namespace -> namespace.getTables().stream() ).filter( t -> t.getName().equals( tableName ) )
65+
.findFirst().orElse( null );
6066
}
6167

62-
@Entity
63-
@jakarta.persistence.Table(name = TABLE_NAME)
68+
@Entity( name = "TestEntity" )
69+
@jakarta.persistence.Table( name = "TestEntity" )
70+
@Inheritance( strategy = InheritanceType.JOINED )
6471
public static class TestEntity {
6572

6673
@Id
6774
private Long id;
6875

6976
@ManyToOne
77+
private TestEntity toOne;
78+
79+
@OneToMany
7080
@JoinColumn
71-
private TestEntity mate;
81+
private List<ChildEntity> oneToMany;
82+
83+
@ManyToMany
84+
private List<ChildEntity> manyToMany;
85+
86+
@ElementCollection
87+
private List<String> elements;
88+
}
7289

90+
@Entity( name = "ChildEntity" )
91+
@jakarta.persistence.Table( name = "ChildEntity" )
92+
public static class ChildEntity extends TestEntity {
93+
private String childName;
7394
}
7495
}

0 commit comments

Comments
 (0)