You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2020/01/16 21:43:37 UTC

[isis] 03/06: ISIS-2266: adds back in JodaXxx for fake data.

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

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

commit a076139789669a85c12809089a1d59c54759ef79
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Thu Jan 16 22:04:28 2020 +0100

    ISIS-2266: adds back in JodaXxx for fake data.
---
 .../isis/applib/services/clock/ClockService.java   |  6 +++
 .../fakedata/applib/services/FakeDataService.java  | 39 +++++++++++++++-----
 .../fakedata/applib/services/J8DateTimes.java      |  2 +-
 .../fakedata/applib/services/J8LocalDates.java     |  2 +-
 .../fakedata/applib/services/JavaSqlDates.java     |  2 +-
 .../fakedata/applib/services/JavaUtilDates.java    |  2 +-
 .../fakedata/applib/services/JodaDateTimes.java    | 36 ++++++++++++++++++
 .../fakedata/applib/services/JodaLocalDates.java   | 35 ++++++++++++++++++
 .../fakedata/applib/services/JodaPeriods.java      | 43 ++++++++++++++++++++++
 .../applib/services/FakeDataServiceTest.java       |  4 +-
 ...eDataDemoObjectWithAll_update_withFakeData.java |  4 +-
 11 files changed, 158 insertions(+), 17 deletions(-)

diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/clock/ClockService.java b/api/applib/src/main/java/org/apache/isis/applib/services/clock/ClockService.java
index 55db9b8..4efb886 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/clock/ClockService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/clock/ClockService.java
@@ -22,10 +22,12 @@ import java.sql.Timestamp;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.OffsetDateTime;
+import java.util.TimeZone;
 
 import javax.inject.Named;
 
 import org.joda.time.DateTime;
+import org.joda.time.DateTimeZone;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.context.annotation.Primary;
 import org.springframework.core.annotation.Order;
@@ -75,4 +77,8 @@ public class ClockService {
         return Clock.getTimeAsJodaDateTime();
     }
 
+    public org.joda.time.LocalDate nowAsJodaLocalDate() {
+        final DateTimeZone timeZone = DateTimeZone.forTimeZone(TimeZone.getDefault());
+        return new org.joda.time.LocalDate(nowAsMillis(), timeZone);
+    }
 }
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/FakeDataService.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/FakeDataService.java
index b349e1c..f7620ac 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/FakeDataService.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/FakeDataService.java
@@ -91,9 +91,14 @@ public class FakeDataService {
         this.javaUtilDates = new JavaUtilDates(this);
         this.javaSqlDates = new JavaSqlDates(this);
         this.javaSqlTimestamps = new JavaSqlTimestamps(this);
-        this.jodaDateTimes = new J8DateTimes(this);
-        this.jodaLocalDates = new J8LocalDates(this);
-        this.jodaPeriods = new J8Periods(this);
+
+        this.j8DateTimes = new J8DateTimes(this);
+        this.j8LocalDates = new J8LocalDates(this);
+        this.j8Periods = new J8Periods(this);
+
+        this.jodaDateTimes = new JodaDateTimes(this);
+        this.jodaLocalDates = new JodaLocalDates(this);
+        this.jodaPeriods = new JodaPeriods(this);
 
         this.bigDecimals = new BigDecimals(this);
         this.bigIntegers = new BigIntegers(this);
@@ -130,9 +135,13 @@ public class FakeDataService {
     private JavaSqlDates javaSqlDates;
     private JavaSqlTimestamps javaSqlTimestamps;
 
-    private J8DateTimes jodaDateTimes;
-    private J8LocalDates jodaLocalDates;
-    private J8Periods jodaPeriods;
+    private J8DateTimes j8DateTimes;
+    private J8LocalDates j8LocalDates;
+    private J8Periods j8Periods;
+
+    private JodaDateTimes jodaDateTimes;
+    private JodaLocalDates jodaLocalDates;
+    private JodaPeriods jodaPeriods;
 
     private BigDecimals bigDecimals;
     private BigIntegers bigIntegers;
@@ -231,15 +240,27 @@ public class FakeDataService {
         return javaSqlTimestamps;
     }
 
-    public J8LocalDates jodaLocalDates() {
+    public J8LocalDates j8LocalDates() {
+        return j8LocalDates;
+    }
+
+    public J8DateTimes j8DateTimes() {
+        return j8DateTimes;
+    }
+
+    public J8Periods j8Periods() {
+        return j8Periods;
+    }
+
+    public JodaLocalDates jodaLocalDates() {
         return jodaLocalDates;
     }
 
-    public J8DateTimes jodaDateTimes() {
+    public JodaDateTimes jodaDateTimes() {
         return jodaDateTimes;
     }
 
-    public J8Periods jodaPeriods() {
+    public JodaPeriods jodaPeriods() {
         return jodaPeriods;
     }
 
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/J8DateTimes.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/J8DateTimes.java
index 4a031a2..9cb1ae8 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/J8DateTimes.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/J8DateTimes.java
@@ -30,7 +30,7 @@ public class J8DateTimes extends AbstractRandomValueGenerator {
 
     @Programmatic
     public OffsetDateTime any() {
-        final Period upTo5Years = fake.jodaPeriods().yearsUpTo(5);
+        final Period upTo5Years = fake.j8Periods().yearsUpTo(5);
         return around(upTo5Years);
     }
 }
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/J8LocalDates.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/J8LocalDates.java
index f91b9ef..9848b45 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/J8LocalDates.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/J8LocalDates.java
@@ -30,7 +30,7 @@ public class J8LocalDates extends AbstractRandomValueGenerator {
 
     @Programmatic
     public LocalDate any() {
-        final Period upTo5Years = fake.jodaPeriods().yearsUpTo(5);
+        final Period upTo5Years = fake.j8Periods().yearsUpTo(5);
         return around(upTo5Years);
     }
 }
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JavaSqlDates.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JavaSqlDates.java
index 9f7d1c6..cb24104 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JavaSqlDates.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JavaSqlDates.java
@@ -13,7 +13,7 @@ public class JavaSqlDates extends AbstractRandomValueGenerator {
 
     @Programmatic
     public java.sql.Date any() {
-        final OffsetDateTime dateTime = fake.jodaDateTimes().any();
+        final OffsetDateTime dateTime = fake.j8DateTimes().any();
         final Date sqldt = asSqlDate(dateTime);
         return sqldt;
     }
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JavaUtilDates.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JavaUtilDates.java
index 32696a0..cca5a1a 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JavaUtilDates.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JavaUtilDates.java
@@ -14,7 +14,7 @@ public class JavaUtilDates extends AbstractRandomValueGenerator {
 
     @Programmatic
     public java.util.Date any() {
-        final OffsetDateTime dateTime = fake.jodaDateTimes().any();
+        final OffsetDateTime dateTime = fake.j8DateTimes().any();
         val epochMillis = dateTime.toInstant().toEpochMilli();
         return new java.util.Date(epochMillis); 
     }
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JodaDateTimes.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JodaDateTimes.java
new file mode 100644
index 0000000..09326bc
--- /dev/null
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JodaDateTimes.java
@@ -0,0 +1,36 @@
+package org.apache.isis.testing.fakedata.applib.services;
+
+import org.joda.time.DateTime;
+import org.joda.time.Period;
+import org.apache.isis.applib.annotation.Programmatic;
+
+public class JodaDateTimes extends AbstractRandomValueGenerator{
+
+    public JodaDateTimes(final FakeDataService fakeDataService) {
+        super(fakeDataService);
+    }
+
+    @Programmatic
+    public DateTime around(final Period period) {
+        final DateTime now = fake.clockService.nowAsJodaDateTime();
+        return fake.booleans().coinFlip() ? before(period) : after(period);
+    }
+
+    @Programmatic
+    public DateTime before(final Period period) {
+        final DateTime now = fake.clockService.nowAsJodaDateTime();
+        return now.minus(period);
+    }
+
+    @Programmatic
+    public DateTime after(final Period period) {
+        final DateTime now = fake.clockService.nowAsJodaDateTime();
+        return now.plus(period);
+    }
+
+    @Programmatic
+    public DateTime any() {
+        final Period upTo5Years = fake.jodaPeriods().yearsUpTo(5);
+        return around(upTo5Years);
+    }
+}
\ No newline at end of file
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JodaLocalDates.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JodaLocalDates.java
new file mode 100644
index 0000000..55af76e
--- /dev/null
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JodaLocalDates.java
@@ -0,0 +1,35 @@
+package org.apache.isis.testing.fakedata.applib.services;
+
+import org.joda.time.LocalDate;
+import org.joda.time.Period;
+import org.apache.isis.applib.annotation.Programmatic;
+
+public class JodaLocalDates extends AbstractRandomValueGenerator{
+
+    public JodaLocalDates(final FakeDataService fakeDataService) {
+        super(fakeDataService);
+    }
+
+    @Programmatic
+    public LocalDate around(final Period period) {
+        return fake.booleans().coinFlip() ? before(period) : after(period);
+    }
+
+    @Programmatic
+    public org.joda.time.LocalDate before(final Period period) {
+        final org.joda.time.LocalDate now = fake.clockService.nowAsJodaLocalDate();
+        return now.minus(period);
+    }
+
+    @Programmatic
+    public org.joda.time.LocalDate after(final Period period) {
+        final org.joda.time.LocalDate now = fake.clockService.nowAsJodaLocalDate();
+        return now.plus(period);
+    }
+
+    @Programmatic
+    public LocalDate any() {
+        final org.joda.time.Period upTo5Years = fake.jodaPeriods().yearsUpTo(5);
+        return around(upTo5Years);
+    }
+}
\ No newline at end of file
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JodaPeriods.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JodaPeriods.java
new file mode 100644
index 0000000..2b9d711
--- /dev/null
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JodaPeriods.java
@@ -0,0 +1,43 @@
+package org.apache.isis.testing.fakedata.applib.services;
+
+
+import org.joda.time.Period;
+import org.apache.isis.applib.annotation.Programmatic;
+
+public class JodaPeriods extends AbstractRandomValueGenerator{
+
+    public JodaPeriods(final FakeDataService fakeDataService) {
+        super(fakeDataService);
+    }
+
+    @Programmatic
+    public Period daysBetween(final int minDays, final int maxDays) {
+        return Period.days(fake.ints().between(minDays, maxDays));
+    }
+
+    @Programmatic
+    public Period daysUpTo(final int maxDays) {
+        return daysBetween(0, maxDays);
+    }
+
+    @Programmatic
+    public Period monthsBetween(final int minMonths, final int maxMonths) {
+        return Period.months(fake.ints().between(minMonths, maxMonths));
+    }
+
+    @Programmatic
+    public Period monthsUpTo(final int months) {
+        return monthsBetween(0, months);
+    }
+
+    @Programmatic
+    public Period yearsBetween(final int minYears, final int maxYears) {
+        return Period.years(fake.ints().between(minYears, maxYears));
+    }
+
+    @Programmatic
+    public Period yearsUpTo(final int years) {
+        return yearsBetween(0, years);
+    }
+
+}
\ No newline at end of file
diff --git a/testing/fakedata/applib/src/test/java/org/apache/isis/testing/fakedata/applib/services/FakeDataServiceTest.java b/testing/fakedata/applib/src/test/java/org/apache/isis/testing/fakedata/applib/services/FakeDataServiceTest.java
index 4942ee9..8b1d586 100644
--- a/testing/fakedata/applib/src/test/java/org/apache/isis/testing/fakedata/applib/services/FakeDataServiceTest.java
+++ b/testing/fakedata/applib/src/test/java/org/apache/isis/testing/fakedata/applib/services/FakeDataServiceTest.java
@@ -220,13 +220,13 @@ public class FakeDataServiceTest {
 
     @Test
     public void jodaDateTimes_any() throws Exception {
-        final OffsetDateTime any = fakeDataService.jodaDateTimes().any();
+        final OffsetDateTime any = fakeDataService.j8DateTimes().any();
         assertThat(any).isNotNull();
     }
 
     @Test
     public void jodaLocalDates_any() throws Exception {
-        final LocalDate any = fakeDataService.jodaLocalDates().any();
+        final LocalDate any = fakeDataService.j8LocalDates().any();
         assertThat(any).isNotNull();
     }
 
diff --git a/testing/fakedata/fixtures/src/main/java/org/apache/isis/testing/fakedata/fixtures/demoapp/demomodule/fixturescripts/data/FakeDataDemoObjectWithAll_update_withFakeData.java b/testing/fakedata/fixtures/src/main/java/org/apache/isis/testing/fakedata/fixtures/demoapp/demomodule/fixturescripts/data/FakeDataDemoObjectWithAll_update_withFakeData.java
index c58f5e4..41e47bf 100644
--- a/testing/fakedata/fixtures/src/main/java/org/apache/isis/testing/fakedata/fixtures/demoapp/demomodule/fixturescripts/data/FakeDataDemoObjectWithAll_update_withFakeData.java
+++ b/testing/fakedata/fixtures/src/main/java/org/apache/isis/testing/fakedata/fixtures/demoapp/demomodule/fixturescripts/data/FakeDataDemoObjectWithAll_update_withFakeData.java
@@ -127,8 +127,8 @@ public class FakeDataDemoObjectWithAll_update_withFakeData extends FixtureScript
 
         this.defaultParam("someJavaUtilDate", executionContext, fakeDataService.javaUtilDates().any());
         this.defaultParam("someJavaSqlDate", executionContext, fakeDataService.javaSqlDates().any());
-        this.defaultParam("someJodaLocalDate", executionContext, fakeDataService.jodaLocalDates().any());
-        this.defaultParam("someJodaDateTime", executionContext, fakeDataService.jodaDateTimes().any());
+        this.defaultParam("someJodaLocalDate", executionContext, fakeDataService.j8LocalDates().any());
+        this.defaultParam("someJodaDateTime", executionContext, fakeDataService.j8DateTimes().any());
         this.defaultParam("someJavaSqlTimestamp", executionContext, fakeDataService.javaSqlTimestamps().any());
 
         this.defaultParam("someBigDecimal", executionContext, fakeDataService.bigDecimals().any(14,4));