You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2022/08/02 11:00:56 UTC

[isis] branch master updated: ISIS-3105: consolidate temporal samplers for testing

This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git


The following commit(s) were added to refs/heads/master by this push:
     new 84b195fa98 ISIS-3105: consolidate temporal samplers for testing
84b195fa98 is described below

commit 84b195fa982d179d36576644f9bab9ff1aee3bd4
Author: Andi Huber <ah...@apache.org>
AuthorDate: Tue Aug 2 13:00:50 2022 +0200

    ISIS-3105: consolidate temporal samplers for testing
---
 .../isis/commons/internal/base/_Temporals.java     | 58 ++++++++++++++++++++++
 .../isis/commons/internal/base/TemporalsTest.java  |  6 +--
 .../temporal/LocalDateTimeValueSemantics.java      |  5 +-
 .../temporal/LocalDateValueSemantics.java          |  5 +-
 .../temporal/LocalTimeValueSemantics.java          |  5 +-
 .../temporal/OffsetDateTimeValueSemantics.java     | 13 +----
 .../temporal/OffsetTimeValueSemantics.java         | 13 +----
 .../temporal/ZonedDateTimeValueSemantics.java      | 13 +----
 .../model/valuetypes/ValueTypeExample.java         | 23 +++++----
 9 files changed, 85 insertions(+), 56 deletions(-)

diff --git a/commons/src/main/java/org/apache/isis/commons/internal/base/_Temporals.java b/commons/src/main/java/org/apache/isis/commons/internal/base/_Temporals.java
index 39a0665e40..b01eb36444 100644
--- a/commons/src/main/java/org/apache/isis/commons/internal/base/_Temporals.java
+++ b/commons/src/main/java/org/apache/isis/commons/internal/base/_Temporals.java
@@ -21,14 +21,22 @@ package org.apache.isis.commons.internal.base;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.sql.Timestamp;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
 import java.time.OffsetDateTime;
 import java.time.OffsetTime;
+import java.time.ZoneId;
+import java.time.ZoneOffset;
 import java.time.ZonedDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.Optional;
 
 import org.springframework.lang.Nullable;
 
+import org.apache.isis.commons.collections.Can;
+
+import lombok.val;
 import lombok.experimental.UtilityClass;
 
 /**
@@ -157,6 +165,56 @@ public final class _Temporals {
                 : null;
     }
 
+    // -- TEMPORAL SAMPLERS
+
+    public static Can<LocalDateTime> sampleLocalDateTime() {
+        return Can.of(
+                LocalDateTime.now(),
+                LocalDateTime.now().plusDays(2).plusSeconds(15));
+    }
+
+    public static Can<LocalDate> sampleLocalDate() {
+        return Can.of(
+                LocalDate.now(),
+                LocalDate.now().plusDays(2));
+    }
+
+    public static Can<LocalTime> sampleLocalTime() {
+        return Can.of(
+                LocalTime.now(),
+                LocalTime.now().plusSeconds(15));
+    }
+
+    public Can<ZonedDateTime> sampleZonedDateTime() {
+        // don't depend on current TimeZone.getDefault(),
+        // instead use an arbitrary mix of fixed time-zone offsets Z, +02:00 and -02:00
+        val localNow = LocalDateTime.now();
+        return Can.of(
+                ZonedDateTime.of(localNow, ZoneId.of("Europe/Paris")),
+                ZonedDateTime.of(localNow, ZoneOffset.UTC),
+                ZonedDateTime.of(localNow, ZoneOffset.ofHours(2)),
+                ZonedDateTime.of(localNow, ZoneOffset.ofHours(-2)).plusDays(2).plusSeconds(15));
+    }
+
+    public Can<OffsetTime> sampleOffsetTime() {
+        // don't depend on current TimeZone.getDefault(),
+        // instead use an arbitrary mix of fixed time-zone offsets Z, +02:00 and -02:00
+        val localNow = LocalTime.now();
+        return Can.of(
+                OffsetTime.of(localNow, ZoneOffset.UTC),
+                OffsetTime.of(localNow, ZoneOffset.ofHours(2)),
+                OffsetTime.of(localNow, ZoneOffset.ofHours(-2)).plusSeconds(15));
+    }
+
+    public Can<OffsetDateTime> sampleOffsetDateTime() {
+        // don't depend on current TimeZone.getDefault(),
+        // instead use an arbitrary mix of fixed time-zone offsets Z, +02:00 and -02:00
+        val localNow = LocalDateTime.now();
+        return Can.of(
+                OffsetDateTime.of(localNow, ZoneOffset.UTC),
+                OffsetDateTime.of(localNow, ZoneOffset.ofHours(2)),
+                OffsetDateTime.of(localNow, ZoneOffset.ofHours(-2)).plusDays(2).plusSeconds(15));
+    }
 
     // -- HELPER
 
diff --git a/commons/src/test/java/org/apache/isis/commons/internal/base/TemporalsTest.java b/commons/src/test/java/org/apache/isis/commons/internal/base/TemporalsTest.java
index 600aeaa914..3722cddb15 100644
--- a/commons/src/test/java/org/apache/isis/commons/internal/base/TemporalsTest.java
+++ b/commons/src/test/java/org/apache/isis/commons/internal/base/TemporalsTest.java
@@ -55,15 +55,15 @@ class TemporalsTest {
     // -- HELPER
 
     private static LocalDate sampleDate() {
-        return LocalDate.of(2022, 8, 2);
+        return _Temporals.sampleLocalDate().getElseFail(0);
     }
 
     private static LocalTime sampleTime() {
-        return LocalTime.of(2, 3, 4, 5);
+        return _Temporals.sampleLocalTime().getElseFail(0);
     }
 
     private static ZoneOffset sampleOffset() {
-        return ZoneOffset.ofHoursMinutes(6, 7);
+        return ZoneOffset.ofHoursMinutes(6, 15);
     }
 
     private static ZoneId sampleZone() {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/temporal/LocalDateTimeValueSemantics.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/temporal/LocalDateTimeValueSemantics.java
index 7ae71c45d9..06f854f932 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/temporal/LocalDateTimeValueSemantics.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/temporal/LocalDateTimeValueSemantics.java
@@ -27,6 +27,7 @@ import org.springframework.stereotype.Component;
 
 import org.apache.isis.applib.value.semantics.OrderRelation;
 import org.apache.isis.commons.collections.Can;
+import org.apache.isis.commons.internal.base._Temporals;
 import org.apache.isis.schema.common.v2.ValueType;
 
 @Component
@@ -65,9 +66,7 @@ implements OrderRelation<LocalDateTime, Duration> {
 
     @Override
     public Can<LocalDateTime> getExamples() {
-        return Can.of(
-                LocalDateTime.now(),
-                LocalDateTime.now().plusDays(2).plusSeconds(15));
+        return _Temporals.sampleLocalDateTime();
     }
 
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/temporal/LocalDateValueSemantics.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/temporal/LocalDateValueSemantics.java
index 1a2ca76802..f23384b640 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/temporal/LocalDateValueSemantics.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/temporal/LocalDateValueSemantics.java
@@ -27,6 +27,7 @@ import org.springframework.stereotype.Component;
 
 import org.apache.isis.applib.value.semantics.OrderRelation;
 import org.apache.isis.commons.collections.Can;
+import org.apache.isis.commons.internal.base._Temporals;
 import org.apache.isis.schema.common.v2.ValueType;
 
 @Component
@@ -65,9 +66,7 @@ implements OrderRelation<LocalDate, Duration> {
 
     @Override
     public Can<LocalDate> getExamples() {
-        return Can.of(
-                LocalDate.now(),
-                LocalDate.now().plusDays(2));
+        return _Temporals.sampleLocalDate();
     }
 
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/temporal/LocalTimeValueSemantics.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/temporal/LocalTimeValueSemantics.java
index f5dfd9c165..5cbbab25aa 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/temporal/LocalTimeValueSemantics.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/temporal/LocalTimeValueSemantics.java
@@ -26,6 +26,7 @@ import javax.inject.Named;
 import org.springframework.stereotype.Component;
 
 import org.apache.isis.commons.collections.Can;
+import org.apache.isis.commons.internal.base._Temporals;
 import org.apache.isis.schema.common.v2.ValueType;
 
 @Component
@@ -63,9 +64,7 @@ extends TemporalValueSemanticsProvider<LocalTime> {
 
     @Override
     public Can<LocalTime> getExamples() {
-        return Can.of(
-                LocalTime.now(),
-                LocalTime.now().plusSeconds(15));
+        return _Temporals.sampleLocalTime();
     }
 
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/temporal/OffsetDateTimeValueSemantics.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/temporal/OffsetDateTimeValueSemantics.java
index 1ae6929f0f..0a4db54ea8 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/temporal/OffsetDateTimeValueSemantics.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/temporal/OffsetDateTimeValueSemantics.java
@@ -19,19 +19,16 @@
 package org.apache.isis.core.metamodel.valuesemantics.temporal;
 
 import java.time.Duration;
-import java.time.LocalDateTime;
 import java.time.OffsetDateTime;
-import java.time.ZoneOffset;
 
 import javax.inject.Named;
 
 import org.springframework.stereotype.Component;
 
 import org.apache.isis.commons.collections.Can;
+import org.apache.isis.commons.internal.base._Temporals;
 import org.apache.isis.schema.common.v2.ValueType;
 
-import lombok.val;
-
 @Component
 @Named("isis.val.OffsetDateTimeValueSemantics")
 //@Log4j2
@@ -67,13 +64,7 @@ extends TemporalValueSemanticsProvider<OffsetDateTime> {
 
     @Override
     public Can<OffsetDateTime> getExamples() {
-        // don't depend on current TimeZone.getDefault(),
-        // instead use an arbitrary mix of fixed time-zone offsets Z, +02:00 and -02:00
-        val localNow = LocalDateTime.now();
-        return Can.of(
-                OffsetDateTime.of(localNow, ZoneOffset.UTC),
-                OffsetDateTime.of(localNow, ZoneOffset.ofHours(2)),
-                OffsetDateTime.of(localNow, ZoneOffset.ofHours(-2)).plusDays(2).plusSeconds(15));
+        return _Temporals.sampleOffsetDateTime();
     }
 
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/temporal/OffsetTimeValueSemantics.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/temporal/OffsetTimeValueSemantics.java
index 799f879e6b..b7ffa702bf 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/temporal/OffsetTimeValueSemantics.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/temporal/OffsetTimeValueSemantics.java
@@ -19,19 +19,16 @@
 package org.apache.isis.core.metamodel.valuesemantics.temporal;
 
 import java.time.Duration;
-import java.time.LocalTime;
 import java.time.OffsetTime;
-import java.time.ZoneOffset;
 
 import javax.inject.Named;
 
 import org.springframework.stereotype.Component;
 
 import org.apache.isis.commons.collections.Can;
+import org.apache.isis.commons.internal.base._Temporals;
 import org.apache.isis.schema.common.v2.ValueType;
 
-import lombok.val;
-
 @Component
 @Named("isis.val.OffsetTimeValueSemantics")
 //@Log4j2
@@ -67,13 +64,7 @@ extends TemporalValueSemanticsProvider<OffsetTime> {
 
     @Override
     public Can<OffsetTime> getExamples() {
-        // don't depend on current TimeZone.getDefault(),
-        // instead use an arbitrary mix of fixed time-zone offsets Z, +02:00 and -02:00
-        val localNow = LocalTime.now();
-        return Can.of(
-                OffsetTime.of(localNow, ZoneOffset.UTC),
-                OffsetTime.of(localNow, ZoneOffset.ofHours(2)),
-                OffsetTime.of(localNow, ZoneOffset.ofHours(-2)).plusSeconds(15));
+        return _Temporals.sampleOffsetTime();
     }
 
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/temporal/ZonedDateTimeValueSemantics.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/temporal/ZonedDateTimeValueSemantics.java
index 832d0d9ba9..d3bb52e652 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/temporal/ZonedDateTimeValueSemantics.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/temporal/ZonedDateTimeValueSemantics.java
@@ -19,8 +19,6 @@
 package org.apache.isis.core.metamodel.valuesemantics.temporal;
 
 import java.time.Duration;
-import java.time.LocalDateTime;
-import java.time.ZoneOffset;
 import java.time.ZonedDateTime;
 
 import javax.inject.Named;
@@ -28,10 +26,9 @@ import javax.inject.Named;
 import org.springframework.stereotype.Component;
 
 import org.apache.isis.commons.collections.Can;
+import org.apache.isis.commons.internal.base._Temporals;
 import org.apache.isis.schema.common.v2.ValueType;
 
-import lombok.val;
-
 @Component
 @Named("isis.val.ZonedDateTimeValueSemantics")
 //@Log4j2
@@ -67,13 +64,7 @@ extends TemporalValueSemanticsProvider<ZonedDateTime> {
 
     @Override
     public Can<ZonedDateTime> getExamples() {
-        // don't depend on current TimeZone.getDefault(),
-        // instead use an arbitrary mix of fixed time-zone offsets Z, +02:00 and -02:00
-        val localNow = LocalDateTime.now();
-        return Can.of(
-                ZonedDateTime.of(localNow, ZoneOffset.UTC),
-                ZonedDateTime.of(localNow, ZoneOffset.ofHours(2)),
-                ZonedDateTime.of(localNow, ZoneOffset.ofHours(-2)).plusDays(2).plusSeconds(15));
+        return _Temporals.sampleZonedDateTime();
     }
 
 }
diff --git a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/model/valuetypes/ValueTypeExample.java b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/model/valuetypes/ValueTypeExample.java
index 12c79d17b3..ae516979d1 100644
--- a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/model/valuetypes/ValueTypeExample.java
+++ b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/model/valuetypes/ValueTypeExample.java
@@ -58,6 +58,7 @@ import org.apache.isis.applib.value.NamedWithMimeType.CommonMimeType;
 import org.apache.isis.applib.value.Password;
 import org.apache.isis.applib.value.semantics.ValueSemanticsAbstract;
 import org.apache.isis.commons.collections.Can;
+import org.apache.isis.commons.internal.base._Temporals;
 import org.apache.isis.core.metamodel.valuesemantics.ApplicationFeatureIdValueSemantics;
 import org.apache.isis.extensions.fullcalendar.applib.value.CalendarEvent;
 import org.apache.isis.extensions.fullcalendar.applib.value.CalendarEventSemantics;
@@ -399,9 +400,9 @@ public abstract class ValueTypeExample<T> {
     public static class ValueTypeExampleLocalDate
     extends ValueTypeExample<LocalDate> {
         @Property @Getter @Setter
-        private LocalDate value = LocalDate.now();
+        private LocalDate value = _Temporals.sampleLocalDate().getElseFail(0);
         @Getter
-        private LocalDate updateValue = LocalDate.now().plusDays(2);
+        private LocalDate updateValue = getValue().plusDays(2);
     }
 
     @Named("isis.testdomain.valuetypes.ValueTypeExampleLocalDateTime")
@@ -410,9 +411,9 @@ public abstract class ValueTypeExample<T> {
     public static class ValueTypeExampleLocalDateTime
     extends ValueTypeExample<LocalDateTime> {
         @Property @Getter @Setter
-        private LocalDateTime value = LocalDateTime.now();
+        private LocalDateTime value = _Temporals.sampleLocalDateTime().getElseFail(0);
         @Getter
-        private LocalDateTime updateValue = LocalDateTime.now().plusDays(2).plusSeconds(15);
+        private LocalDateTime updateValue = getValue().plusDays(2).plusSeconds(15);
     }
 
     @Named("isis.testdomain.valuetypes.ValueTypeExampleLocalTime")
@@ -422,9 +423,9 @@ public abstract class ValueTypeExample<T> {
     public static class ValueTypeExampleLocalTime
     extends ValueTypeExample<LocalTime> {
         @Property @Getter @Setter
-        private LocalTime value = LocalTime.now();
+        private LocalTime value = _Temporals.sampleLocalTime().getElseFail(0);
         @Getter
-        private LocalTime updateValue = LocalTime.now().plusSeconds(15);
+        private LocalTime updateValue = getValue().plusSeconds(15);
     }
 
     @Named("isis.testdomain.valuetypes.ValueTypeExampleOffsetDateTime")
@@ -433,9 +434,9 @@ public abstract class ValueTypeExample<T> {
     public static class ValueTypeExampleOffsetDateTime
     extends ValueTypeExample<OffsetDateTime> {
         @Property @Getter @Setter
-        private OffsetDateTime value = OffsetDateTime.now();
+        private OffsetDateTime value = _Temporals.sampleOffsetDateTime().getElseFail(0);
         @Getter
-        private OffsetDateTime updateValue = OffsetDateTime.now().plusDays(2).plusSeconds(15);
+        private OffsetDateTime updateValue = getValue().plusDays(2).plusSeconds(15);
     }
 
     @Named("isis.testdomain.valuetypes.ValueTypeExampleOffsetTime")
@@ -444,7 +445,7 @@ public abstract class ValueTypeExample<T> {
     public static class ValueTypeExampleOffsetTime
     extends ValueTypeExample<OffsetTime> {
         @Property @Getter @Setter
-        private OffsetTime value = OffsetTime.now();
+        private OffsetTime value = _Temporals.sampleOffsetTime().getElseFail(0);
         @Getter
         private OffsetTime updateValue = OffsetTime.now().plusSeconds(15);
     }
@@ -455,9 +456,9 @@ public abstract class ValueTypeExample<T> {
     public static class ValueTypeExampleZonedDateTime
     extends ValueTypeExample<ZonedDateTime> {
         @Property @Getter @Setter
-        private ZonedDateTime value = ZonedDateTime.now();
+        private ZonedDateTime value = _Temporals.sampleZonedDateTime().getElseFail(0);
         @Getter
-        private ZonedDateTime updateValue = ZonedDateTime.now().plusDays(2).plusSeconds(15);
+        private ZonedDateTime updateValue = getValue().plusDays(2).plusSeconds(15);
     }
 
     // -- EXAMPLES - TEMPORAL - JODA TIME