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/01/27 08:55:28 UTC

[isis] branch master updated: ISIS-2877: prepare value type composition testing (wkt)

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 519bee4  ISIS-2877: prepare value type composition testing (wkt)
519bee4 is described below

commit 519bee4e30eef504edb029063caaffd771281c0b
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Jan 27 09:55:18 2022 +0100

    ISIS-2877: prepare value type composition testing (wkt)
    
    - introduces a viewmodel for testing the CalendarEvent composite value
    type
---
 .../testdomain/viewers/jdo/wkt/TestAppJdoWkt.java  |   8 ++
 .../testdomain/viewers/jdo/wkt/TestAppJpaWkt.java  |   8 ++
 regressiontests/stable/pom.xml                     |   5 +
 .../isis/testdomain/jpa/JpaTestFixtures.java       |   1 -
 .../valuetypes/composite/CalendarEventJaxbVm.java  | 109 +++++++++++++++++++++
 5 files changed, 130 insertions(+), 1 deletion(-)

diff --git a/regressiontests/stable-viewers-jdo/src/main/java/org/apache/isis/testdomain/viewers/jdo/wkt/TestAppJdoWkt.java b/regressiontests/stable-viewers-jdo/src/main/java/org/apache/isis/testdomain/viewers/jdo/wkt/TestAppJdoWkt.java
index ed7c407..9786c55 100644
--- a/regressiontests/stable-viewers-jdo/src/main/java/org/apache/isis/testdomain/viewers/jdo/wkt/TestAppJdoWkt.java
+++ b/regressiontests/stable-viewers-jdo/src/main/java/org/apache/isis/testdomain/viewers/jdo/wkt/TestAppJdoWkt.java
@@ -31,6 +31,7 @@ import org.apache.isis.applib.annotation.DomainObject;
 import org.apache.isis.applib.annotation.HomePage;
 import org.apache.isis.applib.annotation.Nature;
 import org.apache.isis.applib.annotation.ObjectSupport;
+import org.apache.isis.applib.services.factory.FactoryService;
 import org.apache.isis.applib.services.user.UserService;
 import org.apache.isis.commons.internal.debug.xray.XrayEnable;
 import org.apache.isis.core.config.presets.IsisPresets;
@@ -38,6 +39,7 @@ import org.apache.isis.testdomain.conf.Configuration_usingJdo;
 import org.apache.isis.testdomain.conf.Configuration_usingWicket;
 import org.apache.isis.testdomain.jdo.JdoInventoryJaxbVm;
 import org.apache.isis.testdomain.jdo.JdoTestFixtures;
+import org.apache.isis.testdomain.model.valuetypes.composite.CalendarEventJaxbVm;
 import org.apache.isis.viewer.wicket.viewer.IsisModuleViewerWicketViewer;
 
 /**
@@ -75,6 +77,7 @@ public class TestAppJdoWkt extends SpringBootServletInitializer {
 
         @Inject UserService userService;
         @Inject JdoTestFixtures testFixtures;
+        @Inject FactoryService factoryService;
 
         @ObjectSupport public String title() {
             return "Hello, " + userService.currentUserNameElseNobody();
@@ -91,6 +94,11 @@ public class TestAppJdoWkt extends SpringBootServletInitializer {
             return testFixtures.setUpViewmodelWith3Books();
         }
 
+        @Action @ActionLayout(sequence = "0.3")
+        public CalendarEventJaxbVm openCalendarEventSamplePage() {
+            return CalendarEventJaxbVm.setUpViewmodelWith3CalendarEvents(factoryService);
+        }
+
     }
 
 }
diff --git a/regressiontests/stable-viewers-jpa/src/main/java/org/apache/isis/testdomain/viewers/jdo/wkt/TestAppJpaWkt.java b/regressiontests/stable-viewers-jpa/src/main/java/org/apache/isis/testdomain/viewers/jdo/wkt/TestAppJpaWkt.java
index 668dfbd..b349030 100644
--- a/regressiontests/stable-viewers-jpa/src/main/java/org/apache/isis/testdomain/viewers/jdo/wkt/TestAppJpaWkt.java
+++ b/regressiontests/stable-viewers-jpa/src/main/java/org/apache/isis/testdomain/viewers/jdo/wkt/TestAppJpaWkt.java
@@ -31,6 +31,7 @@ import org.apache.isis.applib.annotation.DomainObject;
 import org.apache.isis.applib.annotation.HomePage;
 import org.apache.isis.applib.annotation.Nature;
 import org.apache.isis.applib.annotation.ObjectSupport;
+import org.apache.isis.applib.services.factory.FactoryService;
 import org.apache.isis.applib.services.user.UserService;
 import org.apache.isis.commons.internal.debug.xray.XrayEnable;
 import org.apache.isis.core.config.presets.IsisPresets;
@@ -38,6 +39,7 @@ import org.apache.isis.testdomain.conf.Configuration_usingJpa;
 import org.apache.isis.testdomain.conf.Configuration_usingWicket;
 import org.apache.isis.testdomain.jpa.JpaInventoryJaxbVm;
 import org.apache.isis.testdomain.jpa.JpaTestFixtures;
+import org.apache.isis.testdomain.model.valuetypes.composite.CalendarEventJaxbVm;
 import org.apache.isis.viewer.wicket.viewer.IsisModuleViewerWicketViewer;
 
 /**
@@ -75,6 +77,7 @@ public class TestAppJpaWkt extends SpringBootServletInitializer {
 
         @Inject UserService userService;
         @Inject JpaTestFixtures testFixtures;
+        @Inject FactoryService factoryService;
 
         @ObjectSupport public String title() {
             return "Hello, " + userService.currentUserNameElseNobody();
@@ -91,6 +94,11 @@ public class TestAppJpaWkt extends SpringBootServletInitializer {
             return testFixtures.setUpViewmodelWith3Books();
         }
 
+        @Action @ActionLayout(sequence = "0.3")
+        public CalendarEventJaxbVm openCalendarEventSamplePage() {
+            return CalendarEventJaxbVm.setUpViewmodelWith3CalendarEvents(factoryService);
+        }
+
     }
 
 }
diff --git a/regressiontests/stable/pom.xml b/regressiontests/stable/pom.xml
index dc18869..e3870b8 100644
--- a/regressiontests/stable/pom.xml
+++ b/regressiontests/stable/pom.xml
@@ -53,6 +53,11 @@
 			<groupId>org.apache.isis.valuetypes</groupId>
 			<artifactId>isis-valuetypes-sse-metamodel</artifactId>
 		</dependency>
+		
+        <dependency>
+            <groupId>org.apache.isis.extensions</groupId>
+            <artifactId>isis-extensions-fullcalendar-applib</artifactId>
+        </dependency>
 
 		<dependency>
 			<groupId>org.apache.isis.testing</groupId>
diff --git a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/jpa/JpaTestFixtures.java b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/jpa/JpaTestFixtures.java
index e6267be..1ddccfe 100644
--- a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/jpa/JpaTestFixtures.java
+++ b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/jpa/JpaTestFixtures.java
@@ -138,5 +138,4 @@ public class JpaTestFixtures {
         //System.err.printf("%s%n", bookmark);
     }
 
-
 }
diff --git a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/model/valuetypes/composite/CalendarEventJaxbVm.java b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/model/valuetypes/composite/CalendarEventJaxbVm.java
new file mode 100644
index 0000000..6f78f15
--- /dev/null
+++ b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/model/valuetypes/composite/CalendarEventJaxbVm.java
@@ -0,0 +1,109 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package org.apache.isis.testdomain.model.valuetypes.composite;
+
+import java.time.ZoneOffset;
+import java.time.ZonedDateTime;
+import java.util.List;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.applib.annotation.Collection;
+import org.apache.isis.applib.annotation.DomainObject;
+import org.apache.isis.applib.annotation.Editing;
+import org.apache.isis.applib.annotation.MemberSupport;
+import org.apache.isis.applib.annotation.Nature;
+import org.apache.isis.applib.annotation.Optionality;
+import org.apache.isis.applib.annotation.Parameter;
+import org.apache.isis.applib.annotation.PromptStyle;
+import org.apache.isis.applib.annotation.Property;
+import org.apache.isis.applib.annotation.PropertyLayout;
+import org.apache.isis.applib.services.factory.FactoryService;
+import org.apache.isis.extensions.fullcalendar.applib.value.CalendarEvent;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.val;
+
+@XmlRootElement(name = "root")
+@XmlType(
+        propOrder = {"nextEvent", "events"}
+)
+@XmlAccessorType(XmlAccessType.FIELD)
+@DomainObject(
+        nature=Nature.VIEW_MODEL
+        , logicalTypeName = "testdomain.val.CalendarEventJaxbVm"
+)
+public class CalendarEventJaxbVm {
+
+    @Property(editing = Editing.ENABLED)
+    @PropertyLayout(promptStyle = PromptStyle.INLINE)
+    @Getter @Setter
+    private CalendarEvent nextEvent;
+
+    @Collection
+    @Getter @Setter
+    private List<CalendarEvent> events;
+
+    @Action
+    @ActionLayout(associateWith = "nextEvent")
+    public CalendarEventJaxbVm updateNextEvent(
+            @Parameter(optionality = Optionality.OPTIONAL)
+            final CalendarEvent nextEvent) {
+        this.nextEvent = nextEvent;
+        return this;
+    }
+
+    @MemberSupport
+    public List<CalendarEvent> choices0UpdateNextEvent() {
+        return events;
+    }
+
+    // -- FACTORY
+
+    public static CalendarEventJaxbVm setUpViewmodelWith3CalendarEvents(final FactoryService factoryService) {
+        val sampleVm = factoryService.viewModel(new CalendarEventJaxbVm());
+
+        val a = CalendarEvent.of(
+                ZonedDateTime.of(2022, 05, 13, 17, 30, 15, 0, ZoneOffset.ofHours(3)),
+                "a-name",
+                "a-title");
+
+        val b = CalendarEvent.of(
+                ZonedDateTime.of(2022, 06, 14, 18, 31, 16, 0, ZoneOffset.ofHours(4)),
+                "b-name",
+                "b-title");
+
+        val c = CalendarEvent.of(
+                ZonedDateTime.of(2022, 07, 15, 19, 32, 17, 0, ZoneOffset.ofHours(5)),
+                "c-name",
+                "c-title");
+
+        sampleVm.setNextEvent(a);
+        sampleVm.setEvents(List.of(a, b, c));
+
+        return sampleVm;
+    }
+
+}