Skip to content

Commit 7402338

Browse files
committed
HHH-16125 delete/fix a bunch of assertions that constrain implementation details
these are bad tests; they don't test observable behavior
1 parent 9ac5e35 commit 7402338

File tree

12 files changed

+79
-214
lines changed

12 files changed

+79
-214
lines changed

hibernate-core/src/test/java/org/hibernate/orm/test/annotations/embeddables/nested/NestedEmbeddableMetadataTest.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import org.hibernate.mapping.Property;
2121
import org.hibernate.mapping.SimpleValue;
2222
import org.hibernate.mapping.Value;
23+
import org.hibernate.type.SqlTypes;
2324
import org.hibernate.type.spi.TypeConfiguration;
2425

2526
import org.junit.jupiter.api.Test;
@@ -56,11 +57,8 @@ public void testEnumTypeInterpretation() {
5657
Component amountMetadata = (Component) investmentMetadata.getProperty( "amount" ).getValue();
5758
SimpleValue currencyMetadata = (SimpleValue) amountMetadata.getProperty( "currency" ).getValue();
5859
int[] currencySqlTypes = currencyMetadata.getType().getSqlTypeCodes( metadata );
59-
assertEquals( 1, currencySqlTypes.length );
60-
assertJdbcTypeCode(
61-
typeConfiguration.getJdbcTypeRegistry().getDescriptor( Types.VARCHAR ).getJdbcTypeCode(),
62-
currencySqlTypes[0]
63-
);
60+
assertEquals(1, currencySqlTypes.length);
61+
assertJdbcTypeCode(new int[]{Types.VARCHAR, SqlTypes.ENUM}, currencySqlTypes[0]);
6462
}
6563
finally {
6664
StandardServiceRegistryBuilder.destroy( serviceRegistry );

hibernate-core/src/test/java/org/hibernate/orm/test/annotations/embeddables/nested/fieldaccess/FieldAccessedNestedEmbeddableMetadataTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import org.hibernate.mapping.Property;
2020
import org.hibernate.mapping.SimpleValue;
2121
import org.hibernate.mapping.Value;
22+
import org.hibernate.type.SqlTypes;
2223
import org.hibernate.type.spi.TypeConfiguration;
2324

2425
import org.junit.jupiter.api.Test;
@@ -54,7 +55,7 @@ public void testEnumTypeInterpretation() {
5455
int[] currencySqlTypes = currencyMetadata.getType().getSqlTypeCodes( metadata );
5556
assertEquals( 1, currencySqlTypes.length );
5657
assertJdbcTypeCode(
57-
typeConfiguration.getJdbcTypeRegistry().getDescriptor( Types.VARCHAR ).getJdbcTypeCode(),
58+
new int[]{Types.VARCHAR, SqlTypes.ENUM},
5859
currencySqlTypes[0]
5960
);
6061
}

hibernate-core/src/test/java/org/hibernate/orm/test/annotations/enumerated/EnumeratedSmokeTest.java

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,13 @@
66
*/
77
package org.hibernate.orm.test.annotations.enumerated;
88

9-
import java.sql.Types;
10-
119
import org.hibernate.boot.MetadataSources;
1210
import org.hibernate.boot.spi.MetadataImplementor;
1311
import org.hibernate.mapping.PersistentClass;
1412
import org.hibernate.mapping.Property;
1513
import org.hibernate.metamodel.mapping.JdbcMapping;
16-
import org.hibernate.type.ConvertedBasicType;
17-
import org.hibernate.type.descriptor.converter.internal.NamedEnumValueConverter;
18-
import org.hibernate.type.descriptor.converter.internal.OrdinalEnumValueConverter;
19-
import org.hibernate.type.descriptor.converter.spi.EnumValueConverter;
14+
import org.hibernate.type.BasicType;
15+
import org.hibernate.type.SqlTypes;
2016
import org.hibernate.type.descriptor.jdbc.JdbcType;
2117
import org.hibernate.type.descriptor.jdbc.spi.JdbcTypeRegistry;
2218

@@ -29,13 +25,8 @@
2925
import jakarta.persistence.EnumType;
3026
import jakarta.persistence.Enumerated;
3127
import jakarta.persistence.Id;
32-
import org.assertj.core.api.Assert;
3328
import org.assertj.core.api.Assertions;
3429

35-
import static org.hamcrest.CoreMatchers.instanceOf;
36-
import static org.hamcrest.core.Is.is;
37-
import static org.junit.Assert.assertThat;
38-
3930
/**
4031
* @author Steve Ebersole
4132
*/
@@ -64,19 +55,19 @@ public void testEnumeratedTypeResolutions(ServiceRegistryScope serviceRegistrySc
6455
}
6556

6657
private void validateEnumMapping(JdbcTypeRegistry jdbcRegistry, Property property, EnumType expectedJpaEnumType) {
67-
final ConvertedBasicType<?> propertyType = (ConvertedBasicType<?>) property.getType();
68-
final EnumValueConverter<?, ?> valueConverter = (EnumValueConverter<?, ?>) propertyType.getValueConverter();
58+
final BasicType<?> propertyType = (BasicType<?>) property.getType();
59+
// final EnumValueConverter<?, ?> valueConverter = (EnumValueConverter<?, ?>) propertyType.getValueConverter();
6960
final JdbcMapping jdbcMapping = propertyType.getJdbcMapping();
7061
final JdbcType jdbcType = jdbcMapping.getJdbcType();
7162

7263
assert expectedJpaEnumType != null;
7364
if ( expectedJpaEnumType == EnumType.ORDINAL ) {
74-
Assertions.assertThat( valueConverter ).isInstanceOf( OrdinalEnumValueConverter.class );
65+
// Assertions.assertThat( valueConverter ).isInstanceOf( OrdinalEnumValueConverter.class );
7566
Assertions.assertThat( jdbcType.isInteger() ).isTrue();
7667
}
7768
else {
78-
Assertions.assertThat( valueConverter ).isInstanceOf( NamedEnumValueConverter.class );
79-
Assertions.assertThat( jdbcType.isString() ).isTrue();
69+
// Assertions.assertThat( valueConverter ).isInstanceOf( NamedEnumValueConverter.class );
70+
Assertions.assertThat(jdbcType.isString() || jdbcType.getJdbcTypeCode() == SqlTypes.ENUM).isTrue();
8071
}
8172
}
8273

hibernate-core/src/test/java/org/hibernate/orm/test/annotations/enumerated/mappedSuperclass/EnumeratedWithMappedSuperclassTest.java

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
package org.hibernate.orm.test.annotations.enumerated.mappedSuperclass;
88

99
import java.io.Serializable;
10-
import java.sql.Types;
1110
import jakarta.persistence.Column;
1211
import jakarta.persistence.Enumerated;
1312
import jakarta.persistence.GeneratedValue;
@@ -26,17 +25,15 @@
2625
import org.hibernate.mapping.PersistentClass;
2726
import org.hibernate.mapping.Property;
2827
import org.hibernate.persister.entity.EntityPersister;
29-
import org.hibernate.type.ConvertedBasicType;
30-
import org.hibernate.type.CustomType;
31-
import org.hibernate.type.EnumType;
28+
import org.hibernate.type.BasicType;
3229

3330
import org.hibernate.testing.junit4.BaseUnitTestCase;
31+
import org.hibernate.type.SqlTypes;
3432
import org.junit.After;
3533
import org.junit.Before;
3634
import org.junit.Test;
3735

3836
import static jakarta.persistence.EnumType.STRING;
39-
import static org.hibernate.testing.junit4.ExtraAssertions.assertTyping;
4037
import static org.junit.Assert.assertEquals;
4138

4239
/**
@@ -75,16 +72,16 @@ public void testHHH10128() {
7572

7673
final Property natureProperty = addressLevelBinding.getProperty( "nature" );
7774
//noinspection unchecked
78-
ConvertedBasicType<Nature> natureMapping = (ConvertedBasicType<Nature>) natureProperty.getType();
79-
assertEquals( Types.VARCHAR, natureMapping.getJdbcType().getJdbcTypeCode() );
75+
BasicType<Nature> natureMapping = (BasicType<Nature>) natureProperty.getType();
76+
assertEquals( SqlTypes.VARCHAR, natureMapping.getJdbcType().getJdbcTypeCode() );
8077

8178
try ( SessionFactoryImplementor sf = (SessionFactoryImplementor) metadata.buildSessionFactory() ) {
8279
EntityPersister p = sf.getRuntimeMetamodels()
8380
.getMappingMetamodel()
8481
.getEntityDescriptor( AddressLevel.class.getName() );
8582
//noinspection unchecked
86-
ConvertedBasicType<Nature> runtimeType = (ConvertedBasicType<Nature>) p.getPropertyType( "nature" );
87-
assertEquals( Types.VARCHAR, runtimeType.getJdbcType().getJdbcTypeCode() );
83+
BasicType<Nature> runtimeType = (BasicType<Nature>) p.getPropertyType( "nature" );
84+
assertEquals( SqlTypes.VARCHAR, runtimeType.getJdbcType().getJdbcTypeCode() );
8885
}
8986
}
9087

hibernate-core/src/test/java/org/hibernate/orm/test/annotations/enumerated/ormXml/OrmXmlEnumTypeTest.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,21 @@
66
*/
77
package org.hibernate.orm.test.annotations.enumerated.ormXml;
88

9-
import java.sql.Types;
10-
119
import org.hibernate.boot.Metadata;
1210
import org.hibernate.boot.MetadataSources;
1311
import org.hibernate.boot.registry.StandardServiceRegistry;
14-
import org.hibernate.type.ConvertedBasicType;
1512
import org.hibernate.type.Type;
1613
import org.hibernate.type.descriptor.jdbc.spi.JdbcTypeRegistry;
1714

1815
import org.hibernate.testing.ServiceRegistryBuilder;
1916
import org.hibernate.testing.TestForIssue;
2017
import org.hibernate.testing.junit4.BaseUnitTestCase;
2118
import org.hibernate.testing.junit4.ExtraAssertions;
19+
import org.hibernate.type.internal.BasicTypeImpl;
2220
import org.junit.Test;
2321

22+
import static java.sql.Types.VARCHAR;
23+
import static org.hibernate.type.SqlTypes.ENUM;
2424
import static org.junit.Assert.assertEquals;
2525

2626
/**
@@ -45,9 +45,9 @@ public void testOrmXmlDefinedEnumType() {
4545
final JdbcTypeRegistry jdbcTypeRegistry = metadata.getDatabase()
4646
.getTypeConfiguration()
4747
.getJdbcTypeRegistry();
48-
ConvertedBasicType<?> enumMapping = ExtraAssertions.assertTyping( ConvertedBasicType.class, bindingPropertyType );
48+
BasicTypeImpl<?> enumMapping = ExtraAssertions.assertTyping( BasicTypeImpl.class, bindingPropertyType );
4949
assertEquals(
50-
jdbcTypeRegistry.getDescriptor( Types.VARCHAR ),
50+
jdbcTypeRegistry.getDescriptor( jdbcTypeRegistry.hasRegisteredDescriptor( ENUM ) ? ENUM : VARCHAR ),
5151
jdbcTypeRegistry.getDescriptor( enumMapping.getJdbcType().getJdbcTypeCode() )
5252
);
5353
}

hibernate-core/src/test/java/org/hibernate/orm/test/bootstrap/binding/annotations/basics/EnumResolutionTests.java

Lines changed: 19 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,12 @@
77
package org.hibernate.orm.test.bootstrap.binding.annotations.basics;
88

99
import java.sql.Types;
10-
import java.util.function.Consumer;
1110

1211
import org.hibernate.annotations.JdbcTypeCode;
1312
import org.hibernate.mapping.BasicValue;
1413
import org.hibernate.mapping.PersistentClass;
1514
import org.hibernate.mapping.Property;
1615
import org.hibernate.metamodel.mapping.JdbcMapping;
17-
import org.hibernate.type.descriptor.converter.internal.NamedEnumValueConverter;
18-
import org.hibernate.type.descriptor.converter.internal.OrdinalEnumValueConverter;
19-
import org.hibernate.type.descriptor.converter.spi.BasicValueConverter;
2016
import org.hibernate.type.descriptor.converter.spi.JpaAttributeConverter;
2117
import org.hibernate.type.descriptor.jdbc.JdbcType;
2218
import org.hibernate.type.spi.TypeConfiguration;
@@ -33,14 +29,11 @@
3329
import jakarta.persistence.Enumerated;
3430
import jakarta.persistence.Id;
3531
import jakarta.persistence.Table;
36-
import org.assertj.core.api.Assertions;
3732

3833
import static jakarta.persistence.EnumType.ORDINAL;
3934
import static jakarta.persistence.EnumType.STRING;
4035
import static org.hamcrest.CoreMatchers.equalTo;
41-
import static org.hamcrest.CoreMatchers.instanceOf;
42-
import static org.hamcrest.CoreMatchers.is;
43-
import static org.hamcrest.CoreMatchers.notNullValue;
36+
import static org.hamcrest.CoreMatchers.nullValue;
4437
import static org.hamcrest.MatcherAssert.assertThat;
4538

4639
/**
@@ -60,8 +53,7 @@ public void testRawEnumResolution(DomainModelScope scope) {
6053
entityBinding.getProperty( "rawEnum" ),
6154
Types.TINYINT,
6255
Byte.class,
63-
OrdinalEnumValueConverter.class,
64-
true
56+
null
6557
);
6658
}
6759

@@ -75,8 +67,7 @@ public void testUnspecifiedMappingEnumResolution(DomainModelScope scope) {
7567
entityBinding.getProperty( "unspecifiedMappingEnum" ),
7668
Types.TINYINT,
7769
Byte.class,
78-
OrdinalEnumValueConverter.class,
79-
true
70+
null
8071
);
8172
}
8273

@@ -90,8 +81,7 @@ public void testOrdinalEnumResolution(DomainModelScope scope) {
9081
entityBinding.getProperty( "ordinalEnum" ),
9182
Types.TINYINT,
9283
Byte.class,
93-
OrdinalEnumValueConverter.class,
94-
true
84+
null
9585
);
9686
}
9787

@@ -105,8 +95,7 @@ public void testNamedEnumResolution(DomainModelScope scope) {
10595
entityBinding.getProperty( "namedEnum" ),
10696
Types.VARCHAR,
10797
String.class,
108-
NamedEnumValueConverter.class,
109-
false
98+
null
11099
);
111100
}
112101

@@ -120,13 +109,7 @@ public void testConvertedEnumResolution(DomainModelScope scope) {
120109
entityBinding.getProperty( "convertedEnum" ),
121110
Types.INTEGER,
122111
Integer.class,
123-
(converter) -> {
124-
assertThat( converter, notNullValue() );
125-
assertThat( converter, instanceOf( JpaAttributeConverter.class ) );
126-
//noinspection rawtypes
127-
final Class converterType = ( (JpaAttributeConverter) converter ).getConverterBean().getBeanClass();
128-
assertThat( converterType, equalTo( ConverterImpl.class ) );
129-
}
112+
ConverterImpl.class
130113
);
131114
}
132115

@@ -140,8 +123,7 @@ public void testExplicitEnumResolution(DomainModelScope scope) {
140123
entityBinding.getProperty( "explicitEnum" ),
141124
Types.SMALLINT,
142125
Short.class,
143-
OrdinalEnumValueConverter.class,
144-
true
126+
null
145127
);
146128
}
147129

@@ -155,50 +137,36 @@ public void testSingleCharEnumResolution(DomainModelScope scope) {
155137
entityBinding.getProperty( "singleCharEnum" ),
156138
Types.CHAR,
157139
Character.class,
158-
(converter) -> {
159-
Assertions.assertThat( converter.getRelationalJavaType().getJavaTypeClass() ).isEqualTo( Character.class );
160-
}
140+
null
161141
);
162142
}
163143

164-
@SuppressWarnings("rawtypes")
165-
private void verifyEnumResolution(
166-
Property property,
167-
int jdbcCode,
168-
Class<?> jdbcJavaType,
169-
Class<? extends BasicValueConverter> converterClass,
170-
boolean isOrdinal) {
171-
verifyEnumResolution(
172-
property,
173-
jdbcCode,
174-
jdbcJavaType,
175-
valueConverter -> {
176-
assertThat( valueConverter, notNullValue() );
177-
assertThat( valueConverter, instanceOf( converterClass ) );
178-
}
179-
);
180-
}
181-
182-
@SuppressWarnings("rawtypes")
183144
private void verifyEnumResolution(
184145
Property property,
185146
int jdbcCode,
186147
Class<?> javaType,
187-
Consumer<BasicValueConverter> converterChecker) {
148+
Class<? extends AttributeConverter<?,?>> converterClass) {
188149
final BasicValue.Resolution<?> resolution = ( (BasicValue) property.getValue() ).resolve();
189150
final TypeConfiguration typeConfiguration = ( (BasicValue) property.getValue() ).getTypeConfiguration();
190151
final JdbcType jdbcType = typeConfiguration.getJdbcTypeRegistry().getDescriptor( jdbcCode );
191152

192153
// verify the interpretations used for reading
193-
assertThat( resolution.getJdbcType(), is( jdbcType ) );
194-
assertThat( resolution.getRelationalJavaType().getJavaTypeClass(), equalTo( javaType ) );
154+
// assertThat( resolution.getJdbcType(), is( jdbcType ) );
155+
// assertThat( resolution.getRelationalJavaType().getJavaTypeClass(), equalTo( javaType ) );
195156
assertThat( resolution.getDomainJavaType().getJavaTypeClass(), equalTo( Values.class ) );
196157

197158
final JdbcMapping jdbcMapping = resolution.getJdbcMapping();
198159
assertThat( jdbcMapping.getJdbcType(), equalTo( resolution.getJdbcType() ) );
199160
assertThat( jdbcMapping.getJdbcJavaType(), equalTo( resolution.getRelationalJavaType() ) );
200161

201-
converterChecker.accept( resolution.getValueConverter() );
162+
if ( converterClass == null ) {
163+
assertThat( resolution.getValueConverter(), nullValue() );
164+
}
165+
else {
166+
assertThat( ((JpaAttributeConverter<?,?>) resolution.getValueConverter())
167+
.getConverterJavaType().getJavaTypeClass(),
168+
equalTo( converterClass ) );
169+
}
202170
}
203171

204172
@Entity( name = "EntityWithEnums" )

0 commit comments

Comments
 (0)