Skip to content

Commit 8d81010

Browse files
committed
fix tests after big change to handling of Date
1 parent b6748cd commit 8d81010

File tree

12 files changed

+73
-54
lines changed

12 files changed

+73
-54
lines changed

hibernate-core/src/test/java/org/hibernate/orm/test/boot/models/hbm/type/ReflectiveTypeTests.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,10 @@
1414
import org.hibernate.type.descriptor.java.BasicJavaType;
1515
import org.hibernate.type.descriptor.java.BooleanJavaType;
1616
import org.hibernate.type.descriptor.java.ClobJavaType;
17+
import org.hibernate.type.descriptor.java.DateJavaType;
1718
import org.hibernate.type.descriptor.java.DoubleJavaType;
1819
import org.hibernate.type.descriptor.java.InstantJavaType;
1920
import org.hibernate.type.descriptor.java.IntegerJavaType;
20-
import org.hibernate.type.descriptor.java.JdbcDateJavaType;
21-
import org.hibernate.type.descriptor.java.JdbcTimeJavaType;
22-
import org.hibernate.type.descriptor.java.JdbcTimestampJavaType;
2321
import org.hibernate.type.descriptor.java.ShortJavaType;
2422
import org.hibernate.type.descriptor.java.StringJavaType;
2523
import org.hibernate.type.descriptor.java.UUIDJavaType;
@@ -72,9 +70,9 @@ private void verify(RootClass rootClass) {
7270
verify( rootClass, "theUrl", UrlJavaType.class, SqlTypes.VARCHAR );
7371
verify( rootClass, "theClob", ClobJavaType.class, SqlTypes.CLOB );
7472
verify( rootClass, "theInstant", InstantJavaType.class, SqlTypes.INSTANT );
75-
verify( rootClass, "theDate", JdbcDateJavaType.class, SqlTypes.DATE );
76-
verify( rootClass, "theTime", JdbcTimeJavaType.class, SqlTypes.TIME );
77-
verify( rootClass, "theTimestamp", JdbcTimestampJavaType.class, SqlTypes.TIMESTAMP );
73+
verify( rootClass, "theDate", DateJavaType.class, SqlTypes.DATE );
74+
verify( rootClass, "theTime", DateJavaType.class, SqlTypes.TIME );
75+
verify( rootClass, "theTimestamp", DateJavaType.class, SqlTypes.TIMESTAMP );
7876
}
7977

8078
private static void verify(RootClass rootClass, String attributeName, Class<? extends BasicJavaType<?>> expectedJavaType, int expectedJdbcTypeCode) {

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
*/
55
package org.hibernate.orm.test.bootstrap.binding.annotations.basics;
66

7-
import java.sql.Timestamp;
87
import java.time.Instant;
8+
import java.util.Date;
99
import java.util.Iterator;
1010

1111
import jakarta.persistence.TemporalType;
@@ -59,7 +59,7 @@ public void testIt(DomainModelScope scope) {
5959
case "someDate": {
6060
assertThat(
6161
propertyResolution.getDomainJavaType().getJavaTypeClass(),
62-
sameInstance( Timestamp.class )
62+
sameInstance( Date.class )
6363
);
6464
assertThat( propertyValue.getTemporalPrecision(), is( TemporalType.TIMESTAMP ) );
6565
break;

hibernate-core/src/test/java/org/hibernate/orm/test/jpa/metamodel/EmbeddedTypeTest.java

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,14 @@
44
*/
55
package org.hibernate.orm.test.jpa.metamodel;
66

7-
import java.sql.Date;
8-
7+
import jakarta.persistence.metamodel.SingularAttribute;
98
import org.hibernate.testing.orm.junit.JiraKey;
109
import org.hibernate.testing.orm.junit.EntityManagerFactoryScope;
1110
import org.hibernate.testing.orm.junit.Jpa;
1211
import org.junit.jupiter.api.Test;
1312

1413
import jakarta.persistence.metamodel.EntityType;
1514
import jakarta.persistence.metamodel.ManagedType;
16-
import jakarta.persistence.metamodel.SingularAttribute;
1715

1816
import static org.junit.jupiter.api.Assertions.assertEquals;
1917
import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -30,9 +28,9 @@ public class EmbeddedTypeTest {
3028
@Test
3129
@JiraKey(value = "HHH-6896")
3230
public void ensureComponentsReturnedAsManagedType(EntityManagerFactoryScope scope) {
33-
ManagedType<ShelfLife> managedType = scope.getEntityManagerFactory()
34-
.getMetamodel()
35-
.managedType( ShelfLife.class );
31+
ManagedType<ShelfLife> managedType =
32+
scope.getEntityManagerFactory().getMetamodel()
33+
.managedType( ShelfLife.class );
3634
// the issue was in regards to throwing an exception, but also check for nullness
3735
assertNotNull( managedType );
3836
}
@@ -42,11 +40,22 @@ public void ensureComponentsReturnedAsManagedType(EntityManagerFactoryScope scop
4240
public void testSingularAttributeAccessByName(EntityManagerFactoryScope scope) {
4341
scope.inTransaction(
4442
entityManager -> {
45-
SingularAttribute soldDate_ = entityManager.getMetamodel().embeddable( ShelfLife.class )
46-
.getSingularAttribute( "soldDate" );
47-
assertEquals( Date.class, soldDate_.getJavaType() );
48-
assertEquals( Date.class, soldDate_.getType().getJavaType() );
49-
assertEquals( Date.class, soldDate_.getJavaType() );
43+
var soldDate_ =
44+
entityManager.getMetamodel().embeddable( ShelfLife.class )
45+
.getSingularAttribute( "soldDate" );
46+
assertEquals( java.sql.Date.class, soldDate_.getJavaType() );
47+
assertEquals( java.sql.Date.class, soldDate_.getType().getJavaType() );
48+
}
49+
);
50+
}
51+
52+
@Test
53+
public void testSingularAttributeAccess(EntityManagerFactoryScope scope) {
54+
scope.inTransaction(
55+
entityManager -> {
56+
SingularAttribute<ShelfLife, java.sql.Date> soldDate = ShelfLife_.soldDate;
57+
assertEquals( java.sql.Date.class, soldDate.getJavaType() );
58+
assertEquals( java.sql.Date.class, soldDate.getType().getJavaType() );
5059
}
5160
);
5261
}

hibernate-core/src/test/java/org/hibernate/orm/test/jpa/query/QueryTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -889,7 +889,7 @@ public void testTemporalTypeBinding(EntityManagerFactoryScope scope) {
889889

890890
TypedQuery<Wallet> query = entityManager.createQuery( "select w from " + Wallet.class.getName() + " w where w.marketEntrance = :me", Wallet.class );
891891
Parameter<Date> parameter = query.getParameter( "me", Date.class );
892-
assertEquals( java.sql.Timestamp.class, parameter.getParameterType() );
892+
assertEquals( java.util.Date.class, parameter.getParameterType() );
893893

894894
query.setParameter( "me", new Date() );
895895
query.setParameter( "me", new Date(), TemporalType.DATE );

hibernate-core/src/test/java/org/hibernate/orm/test/mapping/basic/DatePrecisionTests.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44
*/
55
package org.hibernate.orm.test.mapping.basic;
66

7-
import java.sql.Time;
8-
import java.sql.Timestamp;
97
import java.sql.Types;
108
import java.time.Instant;
119
import java.util.Date;
@@ -47,7 +45,7 @@ public void verifyMapping(SessionFactoryScope scope) {
4745
final JdbcMapping jdbcMapping = attribute.getJdbcMapping();
4846
final TemporalJavaType jtd = (TemporalJavaType) jdbcMapping.getJavaTypeDescriptor();
4947
assertThat(jtd, is(attribute.getJavaType()));
50-
assertThat(jtd.getJavaTypeClass(), equalTo(Timestamp.class));
48+
assertThat(jtd.getJavaTypeClass(), equalTo(Date.class));
5149
assertThat(jtd.getPrecision(), equalTo(TemporalType.TIMESTAMP));
5250
assertThat( jdbcMapping.getJdbcType().getJdbcTypeCode(), equalTo( Types.TIMESTAMP));
5351
}
@@ -57,7 +55,7 @@ public void verifyMapping(SessionFactoryScope scope) {
5755
final JdbcMapping jdbcMapping = attribute.getJdbcMapping();
5856
final TemporalJavaType jtd = (TemporalJavaType) jdbcMapping.getJavaTypeDescriptor();
5957
assertThat(jtd, is(attribute.getJavaType()));
60-
assertThat(jtd.getJavaTypeClass(), equalTo(java.sql.Date.class));
58+
assertThat(jtd.getJavaTypeClass(), equalTo(Date.class));
6159
assertThat(jtd.getPrecision(), equalTo(TemporalType.DATE));
6260
assertThat( jdbcMapping.getJdbcType().getJdbcTypeCode(), equalTo( Types.DATE));
6361
}
@@ -67,7 +65,7 @@ public void verifyMapping(SessionFactoryScope scope) {
6765
final JdbcMapping jdbcMapping = attribute.getJdbcMapping();
6866
final TemporalJavaType jtd = (TemporalJavaType) jdbcMapping.getJavaTypeDescriptor();
6967
assertThat(jtd, is(attribute.getJavaType()));
70-
assertThat(jtd.getJavaTypeClass(), equalTo(Time.class));
68+
assertThat(jtd.getJavaTypeClass(), equalTo(Date.class));
7169
assertThat(jtd.getPrecision(), equalTo(TemporalType.TIME));
7270
assertThat( jdbcMapping.getJdbcType().getJdbcTypeCode(), equalTo( Types.TIME));
7371
}

hibernate-core/src/test/java/org/hibernate/orm/test/mapping/embeddable/JsonWithArrayEmbeddableTest.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55
package org.hibernate.orm.test.mapping.embeddable;
66

77
import java.net.URL;
8-
import java.sql.Time;
9-
import java.sql.Timestamp;
108
import java.time.Duration;
119
import java.time.Instant;
1210
import java.time.LocalDate;
@@ -173,8 +171,8 @@ public void testSelectionItems(SessionFactoryScope scope) {
173171
struct.setTheClob( tuple.get( 8, String[].class ) );
174172
struct.setTheBinary( tuple.get( 9, byte[][].class ) );
175173
struct.setTheDate( tuple.get( 10, Date[].class ) );
176-
struct.setTheTime( tuple.get( 11, Time[].class ) );
177-
struct.setTheTimestamp( tuple.get( 12, Timestamp[].class ) );
174+
struct.setTheTime( tuple.get( 11, Date[].class ) );
175+
struct.setTheTimestamp( tuple.get( 12, Date[].class ) );
178176
struct.setTheInstant( tuple.get( 13, Instant[].class ) );
179177
struct.setTheUuid( tuple.get( 14, UUID[].class ) );
180178
struct.setGender( tuple.get( 15, EntityOfBasics.Gender[].class ) );

hibernate-core/src/test/java/org/hibernate/orm/test/mapping/type/java/JdbcTimeJavaTypeDescriptorTest.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,26 @@
44
*/
55
package org.hibernate.orm.test.mapping.type.java;
66

7+
import java.sql.Time;
78
import java.util.Date;
89

910
import org.hibernate.type.descriptor.java.JdbcTimeJavaType;
1011

1112
/**
1213
* @author Owen Farrell
1314
*/
14-
public class JdbcTimeJavaTypeDescriptorTest extends AbstractDescriptorTest<Date> {
15-
final Date original = new Date();
16-
final Date copy = new Date( original.getTime() );
17-
final Date different = new Date( original.getTime() + 500L);
15+
public class JdbcTimeJavaTypeDescriptorTest extends AbstractDescriptorTest<Time> {
16+
Date now = new Date();
17+
final Time original = new Time( now.getHours(), now.getMinutes(), now.getSeconds() );
18+
final Time copy = new Time( original.getTime() );
19+
final Time different = new Time( now.getHours(), now.getMinutes(), now.getSeconds() + 3 );
1820

1921
public JdbcTimeJavaTypeDescriptorTest() {
2022
super( JdbcTimeJavaType.INSTANCE );
2123
}
2224

2325
@Override
24-
protected Data<Date> getTestData() {
26+
protected Data<Time> getTestData() {
2527
return new Data<>( original, copy, different );
2628
}
2729

hibernate-core/src/test/java/org/hibernate/orm/test/mapping/type/java/JdbcTimestampJavaTypeTest.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,25 @@
44
*/
55
package org.hibernate.orm.test.mapping.type.java;
66

7+
import java.sql.Timestamp;
78
import java.util.Date;
89

910
import org.hibernate.type.descriptor.java.JdbcTimestampJavaType;
1011

1112
/**
1213
* @author Owen Farrell
1314
*/
14-
public class JdbcTimestampJavaTypeTest extends AbstractDescriptorTest<Date> {
15-
final Date original = new Date();
16-
final Date copy = new Date( original.getTime() );
17-
final Date different = new Date( original.getTime() + 500L);
15+
public class JdbcTimestampJavaTypeTest extends AbstractDescriptorTest<Timestamp> {
16+
final Timestamp original = new Timestamp( new Date().getTime() );
17+
final Timestamp copy = new Timestamp( original.getTime() );
18+
final Timestamp different = new Timestamp( original.getTime() + 500L);
1819

1920
public JdbcTimestampJavaTypeTest() {
2021
super( JdbcTimestampJavaType.INSTANCE );
2122
}
2223

2324
@Override
24-
protected Data<Date> getTestData() {
25+
protected Data<Timestamp> getTestData() {
2526
return new Data<>( original, copy, different );
2627
}
2728

hibernate-core/src/test/java/org/hibernate/orm/test/ops/Node.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ public void setCascadingChildren(Set cascadingChildren) {
8484

8585
private Date generateCurrentDate() {
8686
// Note : done as java.sql.Date mainly to work around issue with
87-
// MySQL and its lack of milli-second precision on its DATETIME
87+
// MySQL and its lack of millisecond precision on its DATETIME
8888
// and TIMESTAMP datatypes.
8989
return new Date( new java.util.Date().getTime() );
9090
}

hibernate-core/src/test/java/org/hibernate/orm/test/type/TypeTest.java

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import org.hibernate.internal.util.SerializationHelper;
1010
import org.hibernate.internal.util.collections.ArrayHelper;
1111
import org.hibernate.testing.orm.junit.BaseUnitTest;
12+
import org.hibernate.type.BasicType;
1213
import org.hibernate.type.BasicTypeReference;
1314
import org.hibernate.type.SerializableType;
1415
import org.hibernate.type.StandardBasicTypes;
@@ -298,14 +299,14 @@ public void testTimeType() {
298299
@Test
299300
public void testDates() {
300301
final long now = System.currentTimeMillis();
301-
final java.util.Date original = new java.util.Date( now );
302-
final java.util.Date copy = new java.util.Date( now );
303-
final java.util.Date different = new java.util.Date( now + 9999 );
304-
final java.util.Date different2 = new java.util.Date( now + ( 1000L * 60L * 60L * 24L * 365L ) );
305-
306-
runBasicTests( StandardBasicTypes.TIME, original, copy, different );
307-
runBasicTests( StandardBasicTypes.TIMESTAMP, original, copy, different );
308-
runBasicTests( StandardBasicTypes.DATE, original, copy, different2 );
302+
final var original = new java.util.Date( now );
303+
final var copy = new java.util.Date( now );
304+
final var different = new java.util.Date( now + 9999 );
305+
final var different2 = new java.util.Date( now + ( 1000L * 60L * 60L * 24L * 365L ) );
306+
307+
runBasicTestsWithCoercion( StandardBasicTypes.TIME, original, copy, different );
308+
runBasicTestsWithCoercion( StandardBasicTypes.TIMESTAMP, original, copy, different );
309+
runBasicTestsWithCoercion( StandardBasicTypes.DATE, original, copy, different2 );
309310
}
310311

311312
@Test
@@ -317,6 +318,23 @@ public void testTimeZoneType() {
317318
runBasicTests( StandardBasicTypes.TIMEZONE, original, copy, different );
318319
}
319320

321+
protected <T> void runBasicTestsWithCoercion(
322+
BasicTypeReference<T> basicTypeReference,
323+
T original,
324+
T copy,
325+
T different) {
326+
BasicType<?> type =
327+
new TypeConfiguration()
328+
.getBasicTypeRegistry()
329+
.getRegisteredType( basicTypeReference.getName() );
330+
runBasicTests(
331+
type,
332+
type.getJavaTypeDescriptor().coerce(original),
333+
type.getJavaTypeDescriptor().coerce(copy),
334+
type.getJavaTypeDescriptor().coerce(different)
335+
);
336+
}
337+
320338
protected <T> void runBasicTests(
321339
BasicTypeReference<T> basicTypeReference,
322340
T original,

0 commit comments

Comments
 (0)