From 0bd226ddb2716f278e2ebcd520a58e2126ac08e0 Mon Sep 17 00:00:00 2001 From: Stewart Date: Fri, 27 Sep 2019 07:34:44 +0100 Subject: [PATCH] Only apply timezone adjustment if explicitly specified --- .../hamcrest/date/SqlDateMatchers.java | 2 +- .../exparity/hamcrest/date/core/IsAfter.java | 9 +++--- .../exparity/hamcrest/date/core/IsBefore.java | 9 +++--- .../hamcrest/date/core/IsDayOfMonth.java | 9 +++--- .../hamcrest/date/core/IsDayOfWeek.java | 9 +++--- .../hamcrest/date/core/IsFirstDayOfMonth.java | 9 +++--- .../exparity/hamcrest/date/core/IsHour.java | 9 +++--- .../hamcrest/date/core/IsLastDayOfMonth.java | 9 +++--- .../hamcrest/date/core/IsLeapYear.java | 9 +++--- .../hamcrest/date/core/IsMaximum.java | 9 +++--- .../hamcrest/date/core/IsMillisecond.java | 9 +++--- .../hamcrest/date/core/IsMinimum.java | 9 +++--- .../exparity/hamcrest/date/core/IsMinute.java | 9 +++--- .../exparity/hamcrest/date/core/IsMonth.java | 9 +++--- .../exparity/hamcrest/date/core/IsSame.java | 9 +++--- .../hamcrest/date/core/IsSameDay.java | 9 +++--- .../hamcrest/date/core/IsSameOrAfter.java | 9 +++--- .../hamcrest/date/core/IsSameOrBefore.java | 9 +++--- .../exparity/hamcrest/date/core/IsSecond.java | 9 +++--- .../exparity/hamcrest/date/core/IsWithin.java | 9 +++--- .../exparity/hamcrest/date/core/IsYear.java | 9 +++--- .../hamcrest/date/core/TemporalConverter.java | 5 ++-- .../date/core/TemporalConverters.java | 21 ++++++------- .../hamcrest/date/core/TemporalProvider.java | 3 +- .../hamcrest/date/core/TemporalProviders.java | 9 +++--- .../date/core/function/LocalDateFunction.java | 2 +- .../core/function/LocalDateTimeFunction.java | 2 +- .../core/function/OffsetDateTimeFunction.java | 2 +- .../core/function/ZonedDateTimeFunction.java | 2 +- .../hamcrest/date/core/IsHourTest.java | 4 +-- .../hamcrest/date/core/IsSameDayTest.java | 17 ++++++++++- .../hamcrest/date/core/IsSameInstantTest.java | 30 +++++++++++-------- .../hamcrest/date/testutils/ZoneIds.java | 4 +-- 33 files changed, 164 insertions(+), 119 deletions(-) diff --git a/src/main/java/org/exparity/hamcrest/date/SqlDateMatchers.java b/src/main/java/org/exparity/hamcrest/date/SqlDateMatchers.java index 565abfa..d835fbb 100644 --- a/src/main/java/org/exparity/hamcrest/date/SqlDateMatchers.java +++ b/src/main/java/org/exparity/hamcrest/date/SqlDateMatchers.java @@ -686,7 +686,7 @@ public static TemporalMatcher sameMonth(final java.util.Date date * @param date the reference date against which the examined date is checked */ public static TemporalMatcher sameMonthOfYear(final Date date) { - return isMonth(SQLDATE_AS_MONTH.apply(date, ZoneId.systemDefault())); + return new IsMonth(SQLDATE_AS_MONTH, month(date)); } /** diff --git a/src/main/java/org/exparity/hamcrest/date/core/IsAfter.java b/src/main/java/org/exparity/hamcrest/date/core/IsAfter.java index 6408bec..6d2c043 100644 --- a/src/main/java/org/exparity/hamcrest/date/core/IsAfter.java +++ b/src/main/java/org/exparity/hamcrest/date/core/IsAfter.java @@ -2,6 +2,7 @@ import java.time.ZoneId; import java.util.Locale; +import java.util.Optional; import org.hamcrest.Description; @@ -19,12 +20,12 @@ public class IsAfter extends TemporalMatcher { private final TemporalConverter converter; private final TemporalFunction functions; private final Locale locale; - private final ZoneId zone; + private final Optional zone; public IsAfter(TemporalConverter converter, TemporalProvider expected, TemporalFunction functions, - ZoneId zone, + Optional zone, Locale locale) { this.expected = expected; this.converter = converter; @@ -34,7 +35,7 @@ public IsAfter(TemporalConverter converter, } public IsAfter(TemporalConverter converter, TemporalProvider expected, TemporalFunction functions) { - this(converter, expected, functions, ZoneId.systemDefault(), Locale.getDefault(Locale.Category.FORMAT)); + this(converter, expected, functions, Optional.empty(), Locale.getDefault(Locale.Category.FORMAT)); } @Override @@ -55,7 +56,7 @@ public void describeTo(final Description description) { @Override public TemporalMatcher atZone(ZoneId zone) { - return new IsAfter<>(converter, expected, functions, zone, locale); + return new IsAfter<>(converter, expected, functions, Optional.of(zone), locale); } @Override diff --git a/src/main/java/org/exparity/hamcrest/date/core/IsBefore.java b/src/main/java/org/exparity/hamcrest/date/core/IsBefore.java index 3df1f5e..20b85e5 100644 --- a/src/main/java/org/exparity/hamcrest/date/core/IsBefore.java +++ b/src/main/java/org/exparity/hamcrest/date/core/IsBefore.java @@ -2,6 +2,7 @@ import java.time.ZoneId; import java.util.Locale; +import java.util.Optional; import org.hamcrest.Description; @@ -19,12 +20,12 @@ public class IsBefore extends TemporalMatcher { private final TemporalConverter converter; private final TemporalFunction functions; private final Locale locale; - private final ZoneId zone; + private final Optional zone; public IsBefore(TemporalConverter converter, TemporalProvider expected, TemporalFunction functions, - ZoneId zone, + Optional zone, Locale locale) { this.expected = expected; this.converter = converter; @@ -34,7 +35,7 @@ public IsBefore(TemporalConverter converter, } public IsBefore(TemporalConverter converter, TemporalProvider expected, TemporalFunction functions) { - this(converter, expected, functions, ZoneId.systemDefault(), Locale.getDefault(Locale.Category.FORMAT)); + this(converter, expected, functions, Optional.empty(), Locale.getDefault(Locale.Category.FORMAT)); } @Override @@ -55,7 +56,7 @@ public void describeTo(final Description description) { @Override public TemporalMatcher atZone(ZoneId zone) { - return new IsBefore<>(converter, expected, functions, zone, locale); + return new IsBefore<>(converter, expected, functions, Optional.of(zone), locale); } @Override diff --git a/src/main/java/org/exparity/hamcrest/date/core/IsDayOfMonth.java b/src/main/java/org/exparity/hamcrest/date/core/IsDayOfMonth.java index c79b98f..502177e 100644 --- a/src/main/java/org/exparity/hamcrest/date/core/IsDayOfMonth.java +++ b/src/main/java/org/exparity/hamcrest/date/core/IsDayOfMonth.java @@ -2,6 +2,7 @@ import java.time.ZoneId; import java.util.Locale; +import java.util.Optional; import org.exparity.hamcrest.date.core.types.DayOfMonth; import org.hamcrest.Description; @@ -16,11 +17,11 @@ public class IsDayOfMonth extends TemporalMatcher { private final TemporalConverter converter; private final TemporalProvider expected; private final Locale locale; - private final ZoneId zone; + private final Optional zone; public IsDayOfMonth(TemporalConverter converter, TemporalProvider expected, - ZoneId zone, + Optional zone, Locale locale) { this.expected = expected; this.converter = converter; @@ -29,7 +30,7 @@ public IsDayOfMonth(TemporalConverter converter, } public IsDayOfMonth(TemporalConverter converter, TemporalProvider expected) { - this(converter, expected, ZoneId.systemDefault(), Locale.getDefault(Locale.Category.FORMAT)); + this(converter, expected, Optional.empty(), Locale.getDefault(Locale.Category.FORMAT)); } @Override @@ -50,7 +51,7 @@ public void describeTo(final Description description) { @Override public TemporalMatcher atZone(ZoneId zone) { - return new IsDayOfMonth<>(converter, expected, zone, locale); + return new IsDayOfMonth<>(converter, expected, Optional.of(zone), locale); } @Override diff --git a/src/main/java/org/exparity/hamcrest/date/core/IsDayOfWeek.java b/src/main/java/org/exparity/hamcrest/date/core/IsDayOfWeek.java index 99fee44..3ff8b3c 100644 --- a/src/main/java/org/exparity/hamcrest/date/core/IsDayOfWeek.java +++ b/src/main/java/org/exparity/hamcrest/date/core/IsDayOfWeek.java @@ -7,6 +7,7 @@ import java.time.format.TextStyle; import java.util.List; import java.util.Locale; +import java.util.Optional; import org.hamcrest.Description; @@ -20,11 +21,11 @@ public class IsDayOfWeek extends TemporalMatcher { private final TemporalConverter converter; private final TemporalProvider> expected; private final Locale locale; - private final ZoneId zone; + private final Optional zone; public IsDayOfWeek(TemporalConverter converter, TemporalProvider> expected, - ZoneId zone, + Optional zone, Locale locale) { this.expected = expected; this.converter = converter; @@ -33,7 +34,7 @@ public IsDayOfWeek(TemporalConverter converter, } public IsDayOfWeek(TemporalConverter converter, TemporalProvider> expected) { - this(converter, expected, ZoneId.systemDefault(), Locale.getDefault(Locale.Category.FORMAT)); + this(converter, expected, Optional.empty(), Locale.getDefault(Locale.Category.FORMAT)); } @Override @@ -64,7 +65,7 @@ public void describeTo(final Description description) { @Override public TemporalMatcher atZone(ZoneId zone) { - return new IsDayOfWeek<>(converter, expected, zone, locale); + return new IsDayOfWeek<>(converter, expected, Optional.of(zone), locale); } @Override diff --git a/src/main/java/org/exparity/hamcrest/date/core/IsFirstDayOfMonth.java b/src/main/java/org/exparity/hamcrest/date/core/IsFirstDayOfMonth.java index 9a64ca8..47b7035 100644 --- a/src/main/java/org/exparity/hamcrest/date/core/IsFirstDayOfMonth.java +++ b/src/main/java/org/exparity/hamcrest/date/core/IsFirstDayOfMonth.java @@ -5,6 +5,7 @@ import java.time.temporal.TemporalAccessor; import java.time.temporal.ValueRange; import java.util.Locale; +import java.util.Optional; import org.hamcrest.Description; @@ -17,16 +18,16 @@ public class IsFirstDayOfMonth extends TemporalMatcher { private final TemporalConverter converter; private final Locale locale; - private final ZoneId zone; + private final Optional zone; - public IsFirstDayOfMonth(TemporalConverter converter, ZoneId zone, Locale locale) { + public IsFirstDayOfMonth(TemporalConverter converter, Optional zone, Locale locale) { this.converter = converter; this.locale = locale; this.zone = zone; } public IsFirstDayOfMonth(TemporalConverter converter) { - this(converter, ZoneId.systemDefault(), Locale.getDefault(Locale.Category.FORMAT)); + this(converter, Optional.empty(), Locale.getDefault(Locale.Category.FORMAT)); } @Override @@ -49,7 +50,7 @@ public void describeTo(final Description description) { @Override public TemporalMatcher atZone(ZoneId zone) { - return new IsFirstDayOfMonth<>(converter, zone, locale); + return new IsFirstDayOfMonth<>(converter, Optional.of(zone), locale); } @Override diff --git a/src/main/java/org/exparity/hamcrest/date/core/IsHour.java b/src/main/java/org/exparity/hamcrest/date/core/IsHour.java index e81fedc..35fb42e 100644 --- a/src/main/java/org/exparity/hamcrest/date/core/IsHour.java +++ b/src/main/java/org/exparity/hamcrest/date/core/IsHour.java @@ -2,6 +2,7 @@ import java.time.ZoneId; import java.util.Locale; +import java.util.Optional; import org.exparity.hamcrest.date.core.types.Hour; import org.hamcrest.Description; @@ -16,11 +17,11 @@ public class IsHour extends TemporalMatcher { private final TemporalConverter converter; private final TemporalProvider expected; private final Locale locale; - private final ZoneId zone; + private final Optional zone; public IsHour(TemporalConverter converter, TemporalProvider expected, - ZoneId zone, + Optional zone, Locale locale) { this.expected = expected; this.converter = converter; @@ -29,7 +30,7 @@ public IsHour(TemporalConverter converter, } public IsHour(TemporalConverter converter, TemporalProvider expected) { - this(converter, expected, ZoneId.systemDefault(), Locale.getDefault(Locale.Category.FORMAT)); + this(converter, expected, Optional.empty(), Locale.getDefault(Locale.Category.FORMAT)); } @Override @@ -50,7 +51,7 @@ public void describeTo(final Description description) { @Override public TemporalMatcher atZone(ZoneId zone) { - return new IsHour<>(converter, expected, zone, locale); + return new IsHour<>(converter, expected, Optional.of(zone), locale); } @Override diff --git a/src/main/java/org/exparity/hamcrest/date/core/IsLastDayOfMonth.java b/src/main/java/org/exparity/hamcrest/date/core/IsLastDayOfMonth.java index c4e6749..bc702a4 100644 --- a/src/main/java/org/exparity/hamcrest/date/core/IsLastDayOfMonth.java +++ b/src/main/java/org/exparity/hamcrest/date/core/IsLastDayOfMonth.java @@ -5,6 +5,7 @@ import java.time.temporal.TemporalAccessor; import java.time.temporal.ValueRange; import java.util.Locale; +import java.util.Optional; import org.hamcrest.Description; @@ -17,16 +18,16 @@ public class IsLastDayOfMonth extends TemporalMatcher { private final TemporalConverter converter; private final Locale locale; - private final ZoneId zone; + private final Optional zone; - public IsLastDayOfMonth(TemporalConverter converter, ZoneId zone, Locale locale) { + public IsLastDayOfMonth(TemporalConverter converter, Optional zone, Locale locale) { this.converter = converter; this.locale = locale; this.zone = zone; } public IsLastDayOfMonth(TemporalConverter converter) { - this(converter, ZoneId.systemDefault(), Locale.getDefault(Locale.Category.FORMAT)); + this(converter, Optional.empty(), Locale.getDefault(Locale.Category.FORMAT)); } @Override @@ -49,7 +50,7 @@ public void describeTo(final Description description) { @Override public TemporalMatcher atZone(ZoneId zone) { - return new IsLastDayOfMonth<>(converter, zone, locale); + return new IsLastDayOfMonth<>(converter, Optional.of(zone), locale); } @Override diff --git a/src/main/java/org/exparity/hamcrest/date/core/IsLeapYear.java b/src/main/java/org/exparity/hamcrest/date/core/IsLeapYear.java index d864b2f..ca85150 100644 --- a/src/main/java/org/exparity/hamcrest/date/core/IsLeapYear.java +++ b/src/main/java/org/exparity/hamcrest/date/core/IsLeapYear.java @@ -3,6 +3,7 @@ import java.time.Year; import java.time.ZoneId; import java.util.Locale; +import java.util.Optional; import org.hamcrest.Description; @@ -15,16 +16,16 @@ public class IsLeapYear extends TemporalMatcher { private final TemporalConverter converter; private final Locale locale; - private final ZoneId zone; + private final Optional zone; - public IsLeapYear(TemporalConverter converter, ZoneId zone, Locale locale) { + public IsLeapYear(TemporalConverter converter, Optional zone, Locale locale) { this.converter = converter; this.locale = locale; this.zone = zone; } public IsLeapYear(TemporalConverter converter) { - this(converter, ZoneId.systemDefault(), Locale.getDefault(Locale.Category.FORMAT)); + this(converter, Optional.empty(), Locale.getDefault(Locale.Category.FORMAT)); } @Override @@ -45,7 +46,7 @@ public void describeTo(final Description description) { @Override public TemporalMatcher atZone(ZoneId zone) { - return new IsLeapYear<>(converter, zone, locale); + return new IsLeapYear<>(converter, Optional.of(zone), locale); } @Override diff --git a/src/main/java/org/exparity/hamcrest/date/core/IsMaximum.java b/src/main/java/org/exparity/hamcrest/date/core/IsMaximum.java index 9434e31..02b43e7 100644 --- a/src/main/java/org/exparity/hamcrest/date/core/IsMaximum.java +++ b/src/main/java/org/exparity/hamcrest/date/core/IsMaximum.java @@ -7,6 +7,7 @@ import java.time.temporal.TemporalAccessor; import java.time.temporal.ValueRange; import java.util.Locale; +import java.util.Optional; import java.util.stream.Stream; import org.hamcrest.Description; @@ -23,11 +24,11 @@ public class IsMaximum extends TemporalMatcher { private final TemporalConverter converter; private final ChronoField field; private final Locale locale; - private final ZoneId zone; + private final Optional zone; public IsMaximum(TemporalConverter converter, ChronoField field, - ZoneId zone, + Optional zone, Locale locale) { this.converter = converter; this.field = field; @@ -36,7 +37,7 @@ public IsMaximum(TemporalConverter converter, } public IsMaximum(TemporalConverter converter, ChronoField field) { - this(converter, field, ZoneId.systemDefault(), Locale.getDefault(Locale.Category.FORMAT)); + this(converter, field, Optional.empty(), Locale.getDefault(Locale.Category.FORMAT)); } @Override @@ -62,7 +63,7 @@ public void describeTo(final Description description) { @Override public TemporalMatcher atZone(ZoneId zone) { - return new IsMaximum<>(converter, field, zone, locale); + return new IsMaximum<>(converter, field, Optional.of(zone), locale); } @Override diff --git a/src/main/java/org/exparity/hamcrest/date/core/IsMillisecond.java b/src/main/java/org/exparity/hamcrest/date/core/IsMillisecond.java index 6614c03..32ad163 100644 --- a/src/main/java/org/exparity/hamcrest/date/core/IsMillisecond.java +++ b/src/main/java/org/exparity/hamcrest/date/core/IsMillisecond.java @@ -2,6 +2,7 @@ import java.time.ZoneId; import java.util.Locale; +import java.util.Optional; import org.exparity.hamcrest.date.core.types.Millisecond; import org.hamcrest.Description; @@ -16,11 +17,11 @@ public class IsMillisecond extends TemporalMatcher { private final TemporalConverter converter; private final TemporalProvider expected; private final Locale locale; - private final ZoneId zone; + private final Optional zone; public IsMillisecond(TemporalConverter converter, TemporalProvider expected, - ZoneId zone, + Optional zone, Locale locale) { this.expected = expected; this.converter = converter; @@ -29,7 +30,7 @@ public IsMillisecond(TemporalConverter converter, } public IsMillisecond(TemporalConverter converter, TemporalProvider expected) { - this(converter, expected, ZoneId.systemDefault(), Locale.getDefault(Locale.Category.FORMAT)); + this(converter, expected, Optional.empty(), Locale.getDefault(Locale.Category.FORMAT)); } @Override @@ -50,7 +51,7 @@ public void describeTo(final Description description) { @Override public TemporalMatcher atZone(ZoneId zone) { - return new IsMillisecond<>(converter, expected, zone, locale); + return new IsMillisecond<>(converter, expected, Optional.of(zone), locale); } @Override diff --git a/src/main/java/org/exparity/hamcrest/date/core/IsMinimum.java b/src/main/java/org/exparity/hamcrest/date/core/IsMinimum.java index 65ee899..5c28f23 100644 --- a/src/main/java/org/exparity/hamcrest/date/core/IsMinimum.java +++ b/src/main/java/org/exparity/hamcrest/date/core/IsMinimum.java @@ -7,6 +7,7 @@ import java.time.temporal.TemporalAccessor; import java.time.temporal.ValueRange; import java.util.Locale; +import java.util.Optional; import java.util.stream.Stream; import org.hamcrest.Description; @@ -23,9 +24,9 @@ public class IsMinimum extends TemporalMatcher { private final TemporalConverter converter; private final ChronoField field; private final Locale locale; - private final ZoneId zone; + private final Optional zone; - public IsMinimum(TemporalConverter converter, ChronoField field, ZoneId zone, Locale locale) { + public IsMinimum(TemporalConverter converter, ChronoField field, Optional zone, Locale locale) { this.converter = converter; this.field = field; this.locale = locale; @@ -33,7 +34,7 @@ public IsMinimum(TemporalConverter converter, Chr } public IsMinimum(TemporalConverter converter, ChronoField field) { - this(converter, field, ZoneId.systemDefault(), Locale.getDefault(Locale.Category.FORMAT)); + this(converter, field, Optional.empty(), Locale.getDefault(Locale.Category.FORMAT)); } @Override @@ -59,7 +60,7 @@ public void describeTo(final Description description) { @Override public TemporalMatcher atZone(ZoneId zone) { - return new IsMinimum<>(converter, field, zone, locale); + return new IsMinimum<>(converter, field, Optional.of(zone), locale); } @Override diff --git a/src/main/java/org/exparity/hamcrest/date/core/IsMinute.java b/src/main/java/org/exparity/hamcrest/date/core/IsMinute.java index 93f8324..c8be3ca 100644 --- a/src/main/java/org/exparity/hamcrest/date/core/IsMinute.java +++ b/src/main/java/org/exparity/hamcrest/date/core/IsMinute.java @@ -2,6 +2,7 @@ import java.time.ZoneId; import java.util.Locale; +import java.util.Optional; import org.exparity.hamcrest.date.core.types.Minute; import org.hamcrest.Description; @@ -16,11 +17,11 @@ public class IsMinute extends TemporalMatcher { private final TemporalConverter converter; private final TemporalProvider expected; private final Locale locale; - private final ZoneId zone; + private final Optional zone; public IsMinute(TemporalConverter converter, TemporalProvider expected, - ZoneId zone, + Optional zone, Locale locale) { this.expected = expected; this.converter = converter; @@ -29,7 +30,7 @@ public IsMinute(TemporalConverter converter, } public IsMinute(TemporalConverter converter, TemporalProvider expected) { - this(converter, expected, ZoneId.systemDefault(), Locale.getDefault(Locale.Category.FORMAT)); + this(converter, expected, Optional.empty(), Locale.getDefault(Locale.Category.FORMAT)); } @Override @@ -50,7 +51,7 @@ public void describeTo(final Description description) { @Override public TemporalMatcher atZone(ZoneId zone) { - return new IsMinute<>(converter, expected, zone, locale); + return new IsMinute<>(converter, expected, Optional.of(zone), locale); } @Override diff --git a/src/main/java/org/exparity/hamcrest/date/core/IsMonth.java b/src/main/java/org/exparity/hamcrest/date/core/IsMonth.java index 1b7c792..c2ae59f 100644 --- a/src/main/java/org/exparity/hamcrest/date/core/IsMonth.java +++ b/src/main/java/org/exparity/hamcrest/date/core/IsMonth.java @@ -4,6 +4,7 @@ import java.time.ZoneId; import java.time.format.TextStyle; import java.util.Locale; +import java.util.Optional; import org.hamcrest.Description; @@ -17,11 +18,11 @@ public class IsMonth extends TemporalMatcher { private final TemporalConverter converter; private final TemporalProvider expected; private final Locale locale; - private final ZoneId zone; + private final Optional zone; public IsMonth(TemporalConverter converter, TemporalProvider expected, - ZoneId zone, + Optional zone, Locale locale) { this.expected = expected; this.converter = converter; @@ -30,7 +31,7 @@ public IsMonth(TemporalConverter converter, } public IsMonth(TemporalConverter converter, TemporalProvider expected) { - this(converter, expected, ZoneId.systemDefault(), Locale.getDefault(Locale.Category.FORMAT)); + this(converter, expected, Optional.empty(), Locale.getDefault(Locale.Category.FORMAT)); } @Override @@ -51,7 +52,7 @@ public void describeTo(final Description description) { @Override public TemporalMatcher atZone(ZoneId zone) { - return new IsMonth<>(converter, expected, zone, locale); + return new IsMonth<>(converter, expected, Optional.of(zone), locale); } @Override diff --git a/src/main/java/org/exparity/hamcrest/date/core/IsSame.java b/src/main/java/org/exparity/hamcrest/date/core/IsSame.java index 361bd86..3e724a5 100644 --- a/src/main/java/org/exparity/hamcrest/date/core/IsSame.java +++ b/src/main/java/org/exparity/hamcrest/date/core/IsSame.java @@ -2,6 +2,7 @@ import java.time.ZoneId; import java.util.Locale; +import java.util.Optional; import org.hamcrest.Description; @@ -16,12 +17,12 @@ public class IsSame extends TemporalMatcher { private final TemporalConverter converter; private final TemporalFunction functions; private final Locale locale; - private final ZoneId zone; + private final Optional zone; public IsSame(TemporalConverter converter, TemporalProvider expected, TemporalFunction functions, - ZoneId zone, + Optional zone, Locale locale) { this.expected = expected; this.converter = converter; @@ -31,7 +32,7 @@ public IsSame(TemporalConverter converter, } public IsSame(TemporalConverter converter, TemporalProvider expected, TemporalFunction functions) { - this(converter, expected, functions, ZoneId.systemDefault(), Locale.getDefault(Locale.Category.FORMAT)); + this(converter, expected, functions, Optional.empty(), Locale.getDefault(Locale.Category.FORMAT)); } @Override @@ -52,7 +53,7 @@ public void describeTo(final Description description) { @Override public TemporalMatcher atZone(ZoneId zone) { - return new IsSame<>(converter, expected, functions, zone, locale); + return new IsSame<>(converter, expected, functions, Optional.of(zone), locale); } @Override diff --git a/src/main/java/org/exparity/hamcrest/date/core/IsSameDay.java b/src/main/java/org/exparity/hamcrest/date/core/IsSameDay.java index 0e47f71..e664640 100644 --- a/src/main/java/org/exparity/hamcrest/date/core/IsSameDay.java +++ b/src/main/java/org/exparity/hamcrest/date/core/IsSameDay.java @@ -3,6 +3,7 @@ import java.time.LocalDate; import java.time.ZoneId; import java.util.Locale; +import java.util.Optional; import org.hamcrest.Description; @@ -17,11 +18,11 @@ public class IsSameDay extends TemporalMatcher { private final TemporalProvider expected; private final TemporalConverter converter; private final Locale locale; - private final ZoneId zone; + private final Optional zone; public IsSameDay(TemporalConverter converter, TemporalProvider expected, - ZoneId zone, + Optional zone, Locale locale) { this.expected = expected; this.converter = converter; @@ -30,7 +31,7 @@ public IsSameDay(TemporalConverter converter, } public IsSameDay(TemporalConverter converter, TemporalProvider expected) { - this(converter, expected, ZoneId.systemDefault(), Locale.getDefault(Locale.Category.FORMAT)); + this(converter, expected, Optional.empty(), Locale.getDefault(Locale.Category.FORMAT)); } @Override @@ -51,7 +52,7 @@ public void describeTo(final Description description) { @Override public TemporalMatcher atZone(ZoneId zone) { - return new IsSameDay<>(converter, expected, zone, locale); + return new IsSameDay<>(converter, expected, Optional.of(zone), locale); } @Override diff --git a/src/main/java/org/exparity/hamcrest/date/core/IsSameOrAfter.java b/src/main/java/org/exparity/hamcrest/date/core/IsSameOrAfter.java index e9b9dbd..39839b5 100644 --- a/src/main/java/org/exparity/hamcrest/date/core/IsSameOrAfter.java +++ b/src/main/java/org/exparity/hamcrest/date/core/IsSameOrAfter.java @@ -2,6 +2,7 @@ import java.time.ZoneId; import java.util.Locale; +import java.util.Optional; import org.hamcrest.Description; @@ -17,12 +18,12 @@ public class IsSameOrAfter extends TemporalMatcher { private final TemporalConverter converter; private final TemporalFunction functions; private final Locale locale; - private final ZoneId zone; + private final Optional zone; public IsSameOrAfter(TemporalConverter converter, TemporalProvider expected, TemporalFunction functions, - ZoneId zone, + Optional zone, Locale locale) { this.expected = expected; this.converter = converter; @@ -32,7 +33,7 @@ public IsSameOrAfter(TemporalConverter converter, } public IsSameOrAfter(TemporalConverter converter, TemporalProvider expected, TemporalFunction functions) { - this(converter, expected, functions, ZoneId.systemDefault(), Locale.getDefault(Locale.Category.FORMAT)); + this(converter, expected, functions, Optional.empty(), Locale.getDefault(Locale.Category.FORMAT)); } @Override @@ -53,7 +54,7 @@ public void describeTo(final Description description) { @Override public TemporalMatcher atZone(ZoneId zone) { - return new IsSameOrAfter<>(converter, expected, functions, zone, locale); + return new IsSameOrAfter<>(converter, expected, functions, Optional.of(zone), locale); } @Override diff --git a/src/main/java/org/exparity/hamcrest/date/core/IsSameOrBefore.java b/src/main/java/org/exparity/hamcrest/date/core/IsSameOrBefore.java index 4ee0954..a2a34d1 100644 --- a/src/main/java/org/exparity/hamcrest/date/core/IsSameOrBefore.java +++ b/src/main/java/org/exparity/hamcrest/date/core/IsSameOrBefore.java @@ -2,6 +2,7 @@ import java.time.ZoneId; import java.util.Locale; +import java.util.Optional; import org.hamcrest.Description; @@ -17,12 +18,12 @@ public class IsSameOrBefore extends TemporalMatcher { private final TemporalConverter converter; private final TemporalFunction functions; private final Locale locale; - private final ZoneId zone; + private final Optional zone; public IsSameOrBefore(TemporalConverter converter, TemporalProvider expected, TemporalFunction functions, - ZoneId zone, + Optional zone, Locale locale) { this.expected = expected; this.converter = converter; @@ -32,7 +33,7 @@ public IsSameOrBefore(TemporalConverter converter, } public IsSameOrBefore(TemporalConverter converter, TemporalProvider expected, TemporalFunction functions) { - this(converter, expected, functions, ZoneId.systemDefault(), Locale.getDefault(Locale.Category.FORMAT)); + this(converter, expected, functions, Optional.empty(), Locale.getDefault(Locale.Category.FORMAT)); } @Override @@ -53,7 +54,7 @@ public void describeTo(final Description description) { @Override public TemporalMatcher atZone(ZoneId zone) { - return new IsSameOrBefore<>(converter, expected, functions, zone, locale); + return new IsSameOrBefore<>(converter, expected, functions, Optional.of(zone), locale); } @Override diff --git a/src/main/java/org/exparity/hamcrest/date/core/IsSecond.java b/src/main/java/org/exparity/hamcrest/date/core/IsSecond.java index 2fa00c3..311e5f4 100644 --- a/src/main/java/org/exparity/hamcrest/date/core/IsSecond.java +++ b/src/main/java/org/exparity/hamcrest/date/core/IsSecond.java @@ -2,6 +2,7 @@ import java.time.ZoneId; import java.util.Locale; +import java.util.Optional; import org.exparity.hamcrest.date.core.types.Second; import org.hamcrest.Description; @@ -16,11 +17,11 @@ public class IsSecond extends TemporalMatcher { private final TemporalConverter converter; private final TemporalProvider expected; private final Locale locale; - private final ZoneId zone; + private final Optional zone; public IsSecond(TemporalConverter converter, TemporalProvider expected, - ZoneId zone, + Optional zone, Locale locale) { this.expected = expected; this.converter = converter; @@ -29,7 +30,7 @@ public IsSecond(TemporalConverter converter, } public IsSecond(TemporalConverter converter, TemporalProvider expected) { - this(converter, expected, ZoneId.systemDefault(), Locale.getDefault(Locale.Category.FORMAT)); + this(converter, expected, Optional.empty(), Locale.getDefault(Locale.Category.FORMAT)); } @Override @@ -50,7 +51,7 @@ public void describeTo(final Description description) { @Override public TemporalMatcher atZone(ZoneId zone) { - return new IsSecond<>(converter, expected, zone, locale); + return new IsSecond<>(converter, expected, Optional.of(zone), locale); } @Override diff --git a/src/main/java/org/exparity/hamcrest/date/core/IsWithin.java b/src/main/java/org/exparity/hamcrest/date/core/IsWithin.java index 4afb922..94953b4 100644 --- a/src/main/java/org/exparity/hamcrest/date/core/IsWithin.java +++ b/src/main/java/org/exparity/hamcrest/date/core/IsWithin.java @@ -2,6 +2,7 @@ import java.time.ZoneId; import java.util.Locale; +import java.util.Optional; import org.exparity.hamcrest.date.core.types.Interval; import org.hamcrest.Description; @@ -18,13 +19,13 @@ public class IsWithin extends TemporalMatcher { private final TemporalConverter converter; private final TemporalFunction functions; private final Locale locale; - private final ZoneId zone; + private final Optional zone; public IsWithin(Interval interval, TemporalConverter converter, TemporalProvider reference, TemporalFunction functions, - ZoneId zone, + Optional zone, Locale locale) { this.expectedInterval = interval; this.converter = converter; @@ -42,7 +43,7 @@ public IsWithin(Interval interval, converter, reference, functions, - ZoneId.systemDefault(), + Optional.empty(), Locale.getDefault(Locale.Category.FORMAT)); } @@ -67,7 +68,7 @@ public void describeTo(final Description description) { @Override public TemporalMatcher atZone(ZoneId zone) { - return new IsWithin<>(expectedInterval, converter, reference, functions, zone, locale); + return new IsWithin<>(expectedInterval, converter, reference, functions, Optional.of(zone), locale); } @Override diff --git a/src/main/java/org/exparity/hamcrest/date/core/IsYear.java b/src/main/java/org/exparity/hamcrest/date/core/IsYear.java index d5b7877..1a3b904 100644 --- a/src/main/java/org/exparity/hamcrest/date/core/IsYear.java +++ b/src/main/java/org/exparity/hamcrest/date/core/IsYear.java @@ -3,6 +3,7 @@ import java.time.Year; import java.time.ZoneId; import java.util.Locale; +import java.util.Optional; import org.hamcrest.Description; @@ -17,11 +18,11 @@ public class IsYear extends TemporalMatcher { private final TemporalConverter converter; private final TemporalProvider expected; private final Locale locale; - private final ZoneId zone; + private final Optional zone; public IsYear(TemporalConverter converter, TemporalProvider expected, - ZoneId zone, + Optional zone, Locale locale) { this.expected = expected; this.converter = converter; @@ -30,7 +31,7 @@ public IsYear(TemporalConverter converter, } public IsYear(TemporalConverter converter, TemporalProvider expected) { - this(converter, expected, ZoneId.systemDefault(), Locale.getDefault(Locale.Category.FORMAT)); + this(converter, expected, Optional.empty(), Locale.getDefault(Locale.Category.FORMAT)); } @Override @@ -51,7 +52,7 @@ public void describeTo(final Description description) { @Override public TemporalMatcher atZone(ZoneId zone) { - return new IsYear<>(converter, expected, zone, locale); + return new IsYear<>(converter, expected, Optional.of(zone), locale); } @Override diff --git a/src/main/java/org/exparity/hamcrest/date/core/TemporalConverter.java b/src/main/java/org/exparity/hamcrest/date/core/TemporalConverter.java index 1634fb3..565c44a 100644 --- a/src/main/java/org/exparity/hamcrest/date/core/TemporalConverter.java +++ b/src/main/java/org/exparity/hamcrest/date/core/TemporalConverter.java @@ -1,6 +1,7 @@ package org.exparity.hamcrest.date.core; import java.time.ZoneId; +import java.util.Optional; /** * Convert one temporal type to another temporal type @@ -16,8 +17,8 @@ public interface TemporalConverter { /** * Convert one temporal type to another temporal type * @param source the source to convert - * @param zone the timezone to use + * @param zone TODO * @return the source value as the target value */ - public R apply(T source, ZoneId zone); + public R apply(T source, Optional zone); } diff --git a/src/main/java/org/exparity/hamcrest/date/core/TemporalConverters.java b/src/main/java/org/exparity/hamcrest/date/core/TemporalConverters.java index adaf6cb..e7db575 100644 --- a/src/main/java/org/exparity/hamcrest/date/core/TemporalConverters.java +++ b/src/main/java/org/exparity/hamcrest/date/core/TemporalConverters.java @@ -8,6 +8,7 @@ import java.time.Month; import java.time.OffsetDateTime; import java.time.Year; +import java.time.ZoneId; import java.time.ZonedDateTime; import java.time.temporal.TemporalAccessor; import java.util.Date; @@ -48,13 +49,6 @@ public class TemporalConverters { /** * Java Date Converters */ - public static TemporalConverter JAVADATE_AS_SQLDATE = (date, zone) -> { - if (date instanceof java.sql.Date) { - return (java.sql.Date) date; - } else { - return new java.sql.Date(date.getTime()); - } - }; public static TemporalConverter JAVADATE_AS_INSTANT = (date, zone) -> { if (date instanceof java.sql.Date) { @@ -64,7 +58,7 @@ public class TemporalConverters { } }; - public static TemporalConverter JAVADATE_AS_ZONEDDATETIME = (date, zone) -> JAVADATE_AS_INSTANT.apply(date, zone).atZone(zone); + public static TemporalConverter JAVADATE_AS_ZONEDDATETIME = (date, zone) -> JAVADATE_AS_INSTANT.apply(date, zone).atZone(zone.orElse(ZoneId.systemDefault())); public static TemporalConverter JAVADATE_AS_LOCALDATETIME = (date, zone) -> JAVADATE_AS_ZONEDDATETIME.apply(date, zone).toLocalDateTime(); public static TemporalConverter JAVADATE_AS_LOCALDATE = (date, zone) -> { @@ -83,6 +77,13 @@ public class TemporalConverters { } }; + public static TemporalConverter JAVADATE_AS_SQLDATE = (date, zone) -> { + if (date instanceof java.sql.Date) { + return (java.sql.Date) date; + } else { + return new java.sql.Date(date.getTime()); + } + }; public static TemporalConverter JAVADATE_AS_JAVADATE = (date, zone) -> date; public static TemporalConverter JAVADATE_AS_YEAR = (date, zone) -> Year.from(JAVADATE_AS_LOCALDATE.apply(date, zone)); @@ -127,7 +128,7 @@ public class TemporalConverters { /** * ZonedDateTime Converters */ - public static TemporalConverter ZONEDDATETIME_AS_ZONEDDATETIME = (date, zone) -> date.withZoneSameInstant(zone); + public static TemporalConverter ZONEDDATETIME_AS_ZONEDDATETIME = (date, zone) -> zone.map(z -> date.withZoneSameInstant(z)).orElse(date); public static TemporalConverter ZONEDDATETIME_AS_LOCALDATE = (date, zone) -> ZONEDDATETIME_AS_ZONEDDATETIME.apply(date, zone).toLocalDate(); public static TemporalConverter ZONEDDATETIME_AS_YEAR = (date, zone) -> Year.from(ZONEDDATETIME_AS_LOCALDATE.apply(date, zone)); public static TemporalConverter ZONEDDATETIME_AS_MONTH = (date, zone) -> ZONEDDATETIME_AS_LOCALDATE.apply(date, zone).getMonth(); @@ -145,7 +146,7 @@ public class TemporalConverters { /** * {@link OffsetDateTime} Converters */ - public static TemporalConverter OFFSETDATETIME_AS_OFFSETDATETIME = (date, zone) -> date.withOffsetSameInstant(zone.getRules().getOffset(date.toLocalDateTime())); + public static TemporalConverter OFFSETDATETIME_AS_OFFSETDATETIME = (date, zone) -> zone.map(z -> date.withOffsetSameInstant(z.getRules().getOffset(date.toLocalDateTime()))).orElse(date); public static TemporalConverter OFFSETDATETIME_AS_LOCALDATE = (date, zone) -> OFFSETDATETIME_AS_OFFSETDATETIME.apply(date, zone).toLocalDate(); public static TemporalConverter OFFSETDATETIME_AS_YEAR = (date, zone) -> Year.from(OFFSETDATETIME_AS_LOCALDATE.apply(date, zone)); public static TemporalConverter OFFSETDATETIME_AS_MONTH = (date, zone) -> OFFSETDATETIME_AS_LOCALDATE.apply(date, zone).getMonth(); diff --git a/src/main/java/org/exparity/hamcrest/date/core/TemporalProvider.java b/src/main/java/org/exparity/hamcrest/date/core/TemporalProvider.java index 91f464c..e8faf23 100644 --- a/src/main/java/org/exparity/hamcrest/date/core/TemporalProvider.java +++ b/src/main/java/org/exparity/hamcrest/date/core/TemporalProvider.java @@ -1,10 +1,11 @@ package org.exparity.hamcrest.date.core; import java.time.ZoneId; +import java.util.Optional; @FunctionalInterface public interface TemporalProvider { - public S apply(final ZoneId zone); + public S apply(final Optional zone); } diff --git a/src/main/java/org/exparity/hamcrest/date/core/TemporalProviders.java b/src/main/java/org/exparity/hamcrest/date/core/TemporalProviders.java index 320bf9a..fbe4f9f 100644 --- a/src/main/java/org/exparity/hamcrest/date/core/TemporalProviders.java +++ b/src/main/java/org/exparity/hamcrest/date/core/TemporalProviders.java @@ -76,7 +76,7 @@ public static TemporalProvider instant(Date date) { * Factory to create a {@link TemporalProvider} for an {@link Instant} */ public static TemporalProvider instant(Instant instant) { - return (zone) -> instant.atZone(zone).toInstant(); + return (zone) -> zone.map(z -> instant.atZone(z).toInstant()).orElse(instant); } /** @@ -129,14 +129,14 @@ public static TemporalProvider localDate(Date date) { * Factory to create a {@link TemporalProvider} for a {@link LocalDateTime} */ public static TemporalProvider localDateTime(LocalDateTime date) { - return (zone) -> date.atZone(zone).toLocalDateTime(); + return (zone) -> date; } /** * Factory to create a {@link TemporalProvider} for a {@link ZonedDateTime} */ public static TemporalProvider zonedDateTime(ZonedDateTime date) { - return (zone) -> date.withZoneSameInstant(zone); + return (zone) -> zone.map( z -> date.withZoneSameInstant(z)).orElse(date); } /** @@ -161,7 +161,8 @@ public static TemporalProvider zonedDateTime(java.sql.Date date) * Factory to create a {@link TemporalProvider} for a {@link OffsetDateTime} */ public static TemporalProvider offsetDateTime(OffsetDateTime date) { - return (zone) -> date.withOffsetSameInstant(zone.getRules().getOffset(date.toLocalDateTime())); + return (zone) -> zone.map(z -> date.withOffsetSameInstant(z.getRules().getOffset(date.toLocalDateTime()))) + .orElse(date); } /** diff --git a/src/main/java/org/exparity/hamcrest/date/core/function/LocalDateFunction.java b/src/main/java/org/exparity/hamcrest/date/core/function/LocalDateFunction.java index 02ccae9..206be67 100644 --- a/src/main/java/org/exparity/hamcrest/date/core/function/LocalDateFunction.java +++ b/src/main/java/org/exparity/hamcrest/date/core/function/LocalDateFunction.java @@ -29,7 +29,7 @@ public boolean isBefore(final LocalDate expected, final LocalDate actual) { @Override public boolean isSame(final LocalDate expected, final LocalDate actual) { - return expected.equals(actual); + return expected.isEqual(actual); } @Override diff --git a/src/main/java/org/exparity/hamcrest/date/core/function/LocalDateTimeFunction.java b/src/main/java/org/exparity/hamcrest/date/core/function/LocalDateTimeFunction.java index 3a5d86d..d71c482 100644 --- a/src/main/java/org/exparity/hamcrest/date/core/function/LocalDateTimeFunction.java +++ b/src/main/java/org/exparity/hamcrest/date/core/function/LocalDateTimeFunction.java @@ -29,7 +29,7 @@ public boolean isBefore(final LocalDateTime expected, final LocalDateTime actual @Override public boolean isSame(final LocalDateTime expected, final LocalDateTime actual) { - return expected.equals(actual); + return expected.isEqual(actual); } @Override diff --git a/src/main/java/org/exparity/hamcrest/date/core/function/OffsetDateTimeFunction.java b/src/main/java/org/exparity/hamcrest/date/core/function/OffsetDateTimeFunction.java index d47bcd9..67aadd8 100644 --- a/src/main/java/org/exparity/hamcrest/date/core/function/OffsetDateTimeFunction.java +++ b/src/main/java/org/exparity/hamcrest/date/core/function/OffsetDateTimeFunction.java @@ -30,7 +30,7 @@ public boolean isBefore(final OffsetDateTime expected, final OffsetDateTime actu @Override public boolean isSame(final OffsetDateTime expected, final OffsetDateTime actual) { - return expected.equals(actual); + return expected.isEqual(actual); } @Override diff --git a/src/main/java/org/exparity/hamcrest/date/core/function/ZonedDateTimeFunction.java b/src/main/java/org/exparity/hamcrest/date/core/function/ZonedDateTimeFunction.java index 8db3594..cae8fd9 100644 --- a/src/main/java/org/exparity/hamcrest/date/core/function/ZonedDateTimeFunction.java +++ b/src/main/java/org/exparity/hamcrest/date/core/function/ZonedDateTimeFunction.java @@ -30,7 +30,7 @@ public boolean isBefore(final ZonedDateTime expected, final ZonedDateTime actual @Override public boolean isSame(final ZonedDateTime expected, final ZonedDateTime actual) { - return expected.equals(actual); + return expected.isEqual(actual); } @Override diff --git a/src/test/java/org/exparity/hamcrest/date/core/IsHourTest.java b/src/test/java/org/exparity/hamcrest/date/core/IsHourTest.java index 8e3e9a7..fe93da5 100644 --- a/src/test/java/org/exparity/hamcrest/date/core/IsHourTest.java +++ b/src/test/java/org/exparity/hamcrest/date/core/IsHourTest.java @@ -86,7 +86,7 @@ public void isZonedDateTimeHour() { @Test public void isZonedDateTimeHourOtherZone() { - assertThat(AUG_04_2015_NOON_UTC, ZonedDateTimeMatchers.isHour(8).atZone(ZoneIds.EST)); + assertThat(AUG_04_2015_NOON_UTC, ZonedDateTimeMatchers.isHour(7).atZone(ZoneIds.EST)); } @Test(expectedExceptions = AssertionError.class, expectedExceptionsMessageRegExp = ASSERTION_PATTERN) @@ -108,7 +108,7 @@ public void isOffsetDateTimeHour() { @Test public void isOffsetDateTimeHourOtherZone() { - assertThat(AUG_04_2015_NOON_OFFSET_UTC, OffsetDateTimeMatchers.isHour(8).atZone(ZoneIds.EST)); + assertThat(AUG_04_2015_NOON_OFFSET_UTC, OffsetDateTimeMatchers.isHour(7).atZone(ZoneIds.EST)); } @Test(expectedExceptions = AssertionError.class, expectedExceptionsMessageRegExp = ASSERTION_PATTERN) diff --git a/src/test/java/org/exparity/hamcrest/date/core/IsSameDayTest.java b/src/test/java/org/exparity/hamcrest/date/core/IsSameDayTest.java index 90c7e6b..9c33087 100644 --- a/src/test/java/org/exparity/hamcrest/date/core/IsSameDayTest.java +++ b/src/test/java/org/exparity/hamcrest/date/core/IsSameDayTest.java @@ -5,7 +5,12 @@ import static org.exparity.hamcrest.date.testutils.ZoneIds.UTC; import static org.hamcrest.MatcherAssert.assertThat; -import java.util.Locale; +import java.time.LocalDate; +import java.time.LocalTime; +import java.time.Month; +import java.time.ZoneId; +import java.time.ZonedDateTime; +import java.util.Date; import org.exparity.hamcrest.date.DateMatchers; import org.exparity.hamcrest.date.DayMonthYear; @@ -108,6 +113,16 @@ public void isDateSameDayLaterDayMonthYear() { public void isDateSameDaySameDayMonthYear() { assertThat(JUN_15_2012_11PM_UTC_AS_DATE, DateMatchers.sameDay(new DayMonthYear(15, Months.JUNE, 2012)).atZone(UTC)); } + + @Test + public void isDay_WhenStartOfDayInGmtPlus1_ThenOffsetShouldBeIgnored() { + LocalDate firstDayOf2018 = LocalDate.of(2018, Month.JANUARY, 1); // January 1st 2018 + ZonedDateTime startOfFirstDayOf2018InGmtPlus1 = ZonedDateTime.of(firstDayOf2018, LocalTime.MIDNIGHT, ZoneId.of("GMT+1")); // + Date dateToCompare = Date.from(startOfFirstDayOf2018InGmtPlus1.toInstant()); // Local TZ (If GMT then 31st December + assertThat(dateToCompare, + DateMatchers + .isDay(firstDayOf2018.getYear(), firstDayOf2018.getMonth(), firstDayOf2018.getDayOfMonth()).atZone(ZoneId.of("GMT+1"))); + } // java.sql.Date Matchers diff --git a/src/test/java/org/exparity/hamcrest/date/core/IsSameInstantTest.java b/src/test/java/org/exparity/hamcrest/date/core/IsSameInstantTest.java index 56c7709..e731ae4 100644 --- a/src/test/java/org/exparity/hamcrest/date/core/IsSameInstantTest.java +++ b/src/test/java/org/exparity/hamcrest/date/core/IsSameInstantTest.java @@ -28,21 +28,23 @@ public class IsSameInstantTest { // Date Matchers - @Test(expectedExceptions = AssertionError.class, expectedExceptionsMessageRegExp = ASSERTION_PATTERN) + @Test(expectedExceptions = AssertionError.class, + expectedExceptionsMessageRegExp = "\\sExpected: the same date as 2012-06-15T11:00:00Z?\\s but: the date is 2012-06-15T23:00:00Z") public void isDateSameInstantEarlierDate() { assertThat(JUN_15_2012_11PM_UTC_AS_DATE, DateMatchers.sameInstant(JUN_15_2012_11AM_UTC_AS_DATE).atZone(UTC)); } - @Test(expectedExceptions = AssertionError.class, expectedExceptionsMessageRegExp = ASSERTION_PATTERN) + @Test(expectedExceptions = AssertionError.class, + expectedExceptionsMessageRegExp = "\\sExpected: the same date as 2012-06-15T23:00:00Z?\\s but: the date is 2012-06-15T11:00:00Z") public void isDateSameInstantLaterDate() { assertThat(JUN_15_2012_11AM_UTC_AS_DATE, DateMatchers.sameInstant(JUN_15_2012_11PM_UTC_AS_DATE).atZone(UTC)); } - @Test - public void isDateSameInstantSameDate() { - assertThat(JUN_15_2012_11PM_UTC_AS_DATE, DateMatchers.sameInstant(JUN_15_2012_11PM_UTC_AS_DATE).atZone(UTC)); - } - + @Test + public void isDateSameInstantSameDate() { + assertThat(JUN_15_2012_11PM_UTC_AS_DATE, DateMatchers.sameInstant(JUN_15_2012_11PM_UTC_AS_DATE).atZone(UTC)); + } + @Test(expectedExceptions = AssertionError.class, expectedExceptionsMessageRegExp = ASSERTION_PATTERN) public void isDateSameInstantSameDateDifferentTimeZone() { assertThat(JAN_01_2012_11AM_PST_AS_DATE, DateMatchers.sameInstant(JAN_01_2012_11AM_GMT_AS_DATE).atZone(UTC)); @@ -164,12 +166,14 @@ public void isLocalDateTimeSameInstantLaterSameDateTime() { // ZonedDateTime Matchers - @Test(expectedExceptions = AssertionError.class, expectedExceptionsMessageRegExp = ASSERTION_PATTERN) + @Test(expectedExceptions = AssertionError.class, + expectedExceptionsMessageRegExp = "\\sExpected: the same date as Tue, 04 Aug 2015 11:59:00.000 (am|AM) \\+0000?\\s but: the date is Tue, 04 Aug 2015 12:00:00.000 (pm|PM) \\+0000") public void isZonedDateTimeSameInstantEarlierZonedDateTime() { assertThat(AUG_04_2015_NOON_UTC, ZonedDateTimeMatchers.sameInstant(AUG_04_2015_11AM_UTC)); } - @Test(expectedExceptions = AssertionError.class, expectedExceptionsMessageRegExp = ASSERTION_PATTERN) + @Test(expectedExceptions = AssertionError.class, + expectedExceptionsMessageRegExp = "\\sExpected: the same date as Tue, 04 Aug 2015 12:01:00.000 (pm|PM) \\+0000?\\s but: the date is Tue, 04 Aug 2015 12:00:00.000 (pm|PM) \\+0000") public void isZonedDateTimeSameInstantLaterZonedDateTime() { assertThat(AUG_04_2015_NOON_UTC, ZonedDateTimeMatchers.sameInstant(AUG_04_2015_01PM_UTC)); } @@ -178,13 +182,15 @@ public void isZonedDateTimeSameInstantLaterZonedDateTime() { public void isZonedDateTimeSameInstantSameZonedDateTime() { assertThat(AUG_04_2015_NOON_UTC, ZonedDateTimeMatchers.sameInstant(AUG_04_2015_NOON_UTC)); } - - @Test(expectedExceptions = AssertionError.class, expectedExceptionsMessageRegExp = ASSERTION_PATTERN) + + @Test(expectedExceptions = AssertionError.class, + expectedExceptionsMessageRegExp = "\\sExpected: the same date as Tue, 04 Aug 2015 12:00:00.000 (pm|PM) \\+0100?\\s but: the date is Tue, 04 Aug 2015 12:00:00.000 (pm|PM) \\+0000") public void isZonedDateTimeSameInstantZonedDateTimeEarlierZone() { assertThat(AUG_04_2015_NOON_UTC, ZonedDateTimeMatchers.sameInstant(AUG_04_2015_NOON_CET)); } - @Test(expectedExceptions = AssertionError.class, expectedExceptionsMessageRegExp = ASSERTION_PATTERN) + @Test(expectedExceptions = AssertionError.class, + expectedExceptionsMessageRegExp = "\\sExpected: the same date as Tue, 04 Aug 2015 12:00:00.000 (pm|PM) -0500?\\s but: the date is Tue, 04 Aug 2015 12:00:00.000 (pm|PM) \\+0000") public void isZonedDateTimeSameInstantZonedDateTimeLaterZone() { assertThat(AUG_04_2015_NOON_UTC, ZonedDateTimeMatchers.sameInstant(AUG_04_2015_NOON_EST)); } diff --git a/src/test/java/org/exparity/hamcrest/date/testutils/ZoneIds.java b/src/test/java/org/exparity/hamcrest/date/testutils/ZoneIds.java index 5c627ac..9d6c24e 100644 --- a/src/test/java/org/exparity/hamcrest/date/testutils/ZoneIds.java +++ b/src/test/java/org/exparity/hamcrest/date/testutils/ZoneIds.java @@ -11,7 +11,7 @@ public abstract class ZoneIds { public static final ZoneId GMT = ZoneId.of("GMT"); // 00:00 public static final ZoneId UTC = ZoneId.of("UTC"); // 00:00 - public static final ZoneId CET = ZoneId.of("Europe/Paris"); // +01:00 - public static final ZoneId EST = ZoneId.of("America/New_York"); // -04:00 + public static final ZoneId CET = ZoneId.of("UTC+1"); // +01:00 + public static final ZoneId EST = ZoneId.of("UTC-5"); // -05:00 }