From 0afa37c8eaf6ecaa50349cc534c9446aeeb61ee0 Mon Sep 17 00:00:00 2001 From: Peter-Josef Meisch Date: Sun, 19 Apr 2020 23:34:44 +0200 Subject: [PATCH] DATAES-792 - Fix tests with timezone. Original PR: #433 --- .../convert/ElasticsearchDateConverterTests.java | 15 +++++++++++---- ...eElasticsearchPersistentPropertyUnitTests.java | 12 ++++++++++-- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/src/test/java/org/springframework/data/elasticsearch/core/convert/ElasticsearchDateConverterTests.java b/src/test/java/org/springframework/data/elasticsearch/core/convert/ElasticsearchDateConverterTests.java index 62ccd35b8..58890750e 100644 --- a/src/test/java/org/springframework/data/elasticsearch/core/convert/ElasticsearchDateConverterTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/core/convert/ElasticsearchDateConverterTests.java @@ -3,6 +3,9 @@ package org.springframework.data.elasticsearch.core.convert; import static org.assertj.core.api.Assertions.*; import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.ZonedDateTime; import java.util.Date; import java.util.GregorianCalendar; @@ -52,21 +55,25 @@ class ElasticsearchDateConverterTests { @Test // DATAES-792 void shouldConvertLegacyDateToString() { - Date date = new GregorianCalendar(2020, 3, 19, 21, 44).getTime(); + GregorianCalendar calendar = GregorianCalendar + .from(ZonedDateTime.of(LocalDateTime.of(2020, 04, 19, 19, 44), ZoneId.of("UTC"))); + Date legacyDate = calendar.getTime(); ElasticsearchDateConverter converter = ElasticsearchDateConverter.of(DateFormat.basic_date_time); - String formatted = converter.format(date); + String formatted = converter.format(legacyDate); assertThat(formatted).isEqualTo("20200419T194400.000Z"); } @Test // DATAES-792 void shouldParseLegacyDateFromString() { - Date date = new GregorianCalendar(2020, 3, 19, 21, 44).getTime(); + GregorianCalendar calendar = GregorianCalendar + .from(ZonedDateTime.of(LocalDateTime.of(2020, 04, 19, 19, 44), ZoneId.of("UTC"))); + Date legacyDate = calendar.getTime(); ElasticsearchDateConverter converter = ElasticsearchDateConverter.of(DateFormat.basic_date_time); Date parsed = converter.parse("20200419T194400.000Z"); - assertThat(parsed).isEqualTo(date); + assertThat(parsed).isEqualTo(legacyDate); } } diff --git a/src/test/java/org/springframework/data/elasticsearch/core/mapping/SimpleElasticsearchPersistentPropertyUnitTests.java b/src/test/java/org/springframework/data/elasticsearch/core/mapping/SimpleElasticsearchPersistentPropertyUnitTests.java index 79f45312b..fa195c87c 100644 --- a/src/test/java/org/springframework/data/elasticsearch/core/mapping/SimpleElasticsearchPersistentPropertyUnitTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/core/mapping/SimpleElasticsearchPersistentPropertyUnitTests.java @@ -19,8 +19,11 @@ import static org.assertj.core.api.Assertions.*; import java.time.LocalDate; import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.ZonedDateTime; import java.util.Date; import java.util.GregorianCalendar; +import java.util.TimeZone; import org.junit.jupiter.api.Test; import org.springframework.data.elasticsearch.annotations.DateFormat; @@ -114,7 +117,9 @@ public class SimpleElasticsearchPersistentPropertyUnitTests { void shouldConvertFromLegacyDate() { SimpleElasticsearchPersistentEntity persistentEntity = context.getRequiredPersistentEntity(DatesProperty.class); ElasticsearchPersistentProperty persistentProperty = persistentEntity.getRequiredPersistentProperty("legacyDate"); - Date legacyDate = new GregorianCalendar(2020, 3, 19, 21, 44).getTime(); + GregorianCalendar calendar = GregorianCalendar + .from(ZonedDateTime.of(LocalDateTime.of(2020, 4, 19, 19, 44), ZoneId.of("UTC"))); + Date legacyDate = calendar.getTime(); String converted = persistentProperty.getPropertyConverter().write(legacyDate); @@ -129,7 +134,10 @@ public class SimpleElasticsearchPersistentPropertyUnitTests { Object converted = persistentProperty.getPropertyConverter().read("20200419T194400.000Z"); assertThat(converted).isInstanceOf(Date.class); - assertThat(converted).isEqualTo(new GregorianCalendar(2020, 3, 19, 21, 44).getTime()); + GregorianCalendar calendar = GregorianCalendar + .from(ZonedDateTime.of(LocalDateTime.of(2020, 4, 19, 19, 44), ZoneId.of("UTC"))); + Date legacyDate = calendar.getTime(); + assertThat(converted).isEqualTo(legacyDate); } static class InvalidScoreProperty {