From 745fbe883e7cf480f46424e6ec8020ea2fdee8b7 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Tue, 5 Jul 2022 09:05:13 +1200 Subject: [PATCH] #2737 - Mapping of TimeZone doesn't have enough characters --- .../server/type/ScalarTypeTimeZone.java | 2 +- .../server/type/ScalarTypeTimeZoneTest.java | 15 ++++++++++++++ .../basic/type/TestExtraScalarTypes.java | 20 ++++++++++++++++++- 3 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeTimeZoneTest.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeTimeZone.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeTimeZone.java index b059d2e31..a938a1c6a 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeTimeZone.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeTimeZone.java @@ -13,7 +13,7 @@ final class ScalarTypeTimeZone extends ScalarTypeBaseVarchar { @Override public int getLength() { - return 20; + return 32; } @Override diff --git a/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeTimeZoneTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeTimeZoneTest.java new file mode 100644 index 000000000..894c20dc3 --- /dev/null +++ b/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeTimeZoneTest.java @@ -0,0 +1,15 @@ +package io.ebeaninternal.server.type; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class ScalarTypeTimeZoneTest { + + ScalarTypeTimeZone type = new ScalarTypeTimeZone(); + + @Test + void getLength() { + assertEquals(32, type.getLength()); + } +} diff --git a/ebean-test/src/test/java/org/tests/basic/type/TestExtraScalarTypes.java b/ebean-test/src/test/java/org/tests/basic/type/TestExtraScalarTypes.java index ff8806b25..62d3a0a59 100644 --- a/ebean-test/src/test/java/org/tests/basic/type/TestExtraScalarTypes.java +++ b/ebean-test/src/test/java/org/tests/basic/type/TestExtraScalarTypes.java @@ -16,8 +16,26 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; class TestExtraScalarTypes extends BaseTestCase { @Test - void test() { + void insertLargeTimezone() { + TimeZone tz = TimeZone.getTimeZone("America/Argentina/ComodRivadavia"); + var bean = new ESomeType(); + bean.setTimeZone(tz); + DB.save(bean); + var found = DB.find(ESomeType.class, bean.getId()); + assert found != null; + assertThat(found.getTimeZone()).isEqualTo(tz); + + var findByTimezone = DB.find(ESomeType.class).where().eq("timeZone", tz).findList(); + assertThat(findByTimezone).hasSize(1); + assertThat(findByTimezone.get(0).getId()).isEqualTo(found.getId()); + assertThat(findByTimezone.get(0).getTimeZone()).isEqualTo(tz); + + DB.delete(found); + } + + @Test + void test() { Locale locale = Locale.ENGLISH; Currency currency = Currency.getInstance(Locale.US); TimeZone tz = TimeZone.getDefault();