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

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


The following commit(s) were added to refs/heads/v4 by this push:
     new 2b019c1899b CAUSEWAY-3892: further resurrecting RO viewer tests
2b019c1899b is described below

commit 2b019c1899bfba30f6564cb3efae6bd49ca57b44
Author: Andi Huber <[email protected]>
AuthorDate: Fri Jun 13 07:59:34 2025 +0200

    CAUSEWAY-3892: further resurrecting RO viewer tests
---
 .../testdomain/jpa/JpaInventoryJaxbVm.java         |  2 +-
 .../testdomain/jpa/JpaInventoryResource.java       | 42 ++++++++++++----------
 .../causeway/testdomain/jpa/JpaTestFixtures.java   |  9 ++---
 .../jpa/rest/JpaRestEndpointService.java           | 10 +++---
 .../testdomain/rest/jpa/RestServiceTest.java       | 25 +++++++------
 .../client/ActionParameterListBuilder.java         | 18 ++++------
 6 files changed, 54 insertions(+), 52 deletions(-)

diff --git 
a/regressiontests/base-jpa/src/main/java/org/apache/causeway/testdomain/jpa/JpaInventoryJaxbVm.java
 
b/regressiontests/base-jpa/src/main/java/org/apache/causeway/testdomain/jpa/JpaInventoryJaxbVm.java
index 1eb3b5ad1ba..9ae376d9885 100644
--- 
a/regressiontests/base-jpa/src/main/java/org/apache/causeway/testdomain/jpa/JpaInventoryJaxbVm.java
+++ 
b/regressiontests/base-jpa/src/main/java/org/apache/causeway/testdomain/jpa/JpaInventoryJaxbVm.java
@@ -63,7 +63,7 @@
 @XmlAccessorType(XmlAccessType.FIELD)
 @Named("testdomain.jpa.JpaInventoryJaxbVm")
 @DomainObject(
-        nature=Nature.VIEW_MODEL)
+        nature=Nature.VIEW_MODEL, aliased = 
"testdomain.jpa.JpaInventoryJaxbVmAlias")
 public class JpaInventoryJaxbVm
 implements InventoryJaxbVm<JpaBook> {
 
diff --git 
a/regressiontests/base-jpa/src/main/java/org/apache/causeway/testdomain/jpa/JpaInventoryResource.java
 
b/regressiontests/base-jpa/src/main/java/org/apache/causeway/testdomain/jpa/JpaInventoryResource.java
index a3cfd95d4e2..a384cc24ed7 100644
--- 
a/regressiontests/base-jpa/src/main/java/org/apache/causeway/testdomain/jpa/JpaInventoryResource.java
+++ 
b/regressiontests/base-jpa/src/main/java/org/apache/causeway/testdomain/jpa/JpaInventoryResource.java
@@ -33,8 +33,10 @@
 import org.apache.causeway.applib.annotation.ParameterLayout;
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import org.apache.causeway.applib.services.repository.RepositoryService;
+import org.apache.causeway.commons.internal.assertions._Assert;
 import org.apache.causeway.commons.internal.base._NullSafe;
 import org.apache.causeway.commons.internal.collections._Lists;
+import org.apache.causeway.extensions.fullcalendar.applib.value.CalendarEvent;
 import org.apache.causeway.testdomain.jpa.entities.JpaBook;
 import org.apache.causeway.testdomain.jpa.entities.JpaProduct;
 import org.apache.causeway.testdomain.util.dto.BookDto;
@@ -48,6 +50,7 @@
 public class JpaInventoryResource {
 
     final RepositoryService repository;
+    final JpaTestFixtures testFixtures;
 
     @Action
     public List<JpaProduct> listProducts() {
@@ -68,20 +71,12 @@ public JpaBook recommendedBookOfTheWeek() {
 
     @Action
     public List<JpaBook> multipleBooks(
-
-            @ParameterLayout(named = "") final
-            int nrOfBooks
-
-            ) {
-
-        var books = _Lists.<JpaBook>newArrayList();
-
-        // for this test we do not care if we generate duplicates
-        for(int i=0; i<nrOfBooks; ++i) {
-            var book = JpaBook.of("MultipleBooksTest", "An awesome 
Book["+i+"]", 12, "Author", "ISBN", "Publisher");
-            books.add(repository.persist(book));
-        }
-        return books;
+            @ParameterLayout(named = "")
+            final int nrOfBooks) {
+        _Assert.assertEquals(3, nrOfBooks);
+        testFixtures.clearRepository();
+        testFixtures.add3Books();
+        return listBooks();
     }
 
     @Action //TODO improve the REST client such that the param can be of type 
Book
@@ -120,20 +115,29 @@ public BookDto recommendedBookOfTheWeekAsDto() {
 
     @Action
     public List<BookDto> multipleBooksAsDto(
-
             @ParameterLayout(named = "") final
-            int nrOfBooks
-
-            ) {
+            int nrOfBooks) {
 
         var books = _Lists.<BookDto>newArrayList();
 
         // for this test we do not care if we generate duplicates
         for(int i=0; i<nrOfBooks; ++i) {
-            var book = JpaBook.of("MultipleBooksTest", "An awesome 
Book["+i+"]", 12, "Author", "ISBN", "Publisher");
+            var book = JpaBook.of("MultipleBooksAsDtoTest", "An awesome 
Book["+i+"]", 12, "Author", "ISBN", "Publisher");
             books.add(BookDto.from(book));
         }
         return books;
     }
 
+    @Action
+    public JpaInventoryJaxbVm inventoryAsJaxbVm(){
+        testFixtures.clearRepository();
+        testFixtures.add3Books();
+        return testFixtures.createViewmodelWithCurrentBooks();
+    }
+
+    @Action // echos given CalendarEvent (composite value type test)
+    public CalendarEvent echoCalendarEvent(final CalendarEvent calendarEvent) {
+        return calendarEvent;
+    }
+
 }
diff --git 
a/regressiontests/base-jpa/src/main/java/org/apache/causeway/testdomain/jpa/JpaTestFixtures.java
 
b/regressiontests/base-jpa/src/main/java/org/apache/causeway/testdomain/jpa/JpaTestFixtures.java
index 5f1d16bc6bf..50c1ec772de 100644
--- 
a/regressiontests/base-jpa/src/main/java/org/apache/causeway/testdomain/jpa/JpaTestFixtures.java
+++ 
b/regressiontests/base-jpa/src/main/java/org/apache/causeway/testdomain/jpa/JpaTestFixtures.java
@@ -67,20 +67,21 @@ public void add3Books() {
         SortedSet<JpaProduct> products = new TreeSet<>();
 
         BookDto.samples()
-        .map(JpaBook::fromDto)
-        .forEach(products::add);
+            .map(JpaBook::fromDto)
+            .forEach(products::add);
 
         var inventory = new JpaInventory("Sample Inventory", products);
         repository.persistAndFlush(inventory);
     }
 
     @Override
-    public Object addBook(BookDto bookDto) {
+    public Object addBook(final BookDto bookDto) {
         return repository.persistAndFlush(JpaBook.fromDto(bookDto));
     }
 
     @Override
-    public void addInventory(Set<?> books) {
+    public void addInventory(final Set<?> books) {
+        @SuppressWarnings("unchecked")
         var inventory = new JpaInventory("Sample Inventory", (Set<JpaProduct>) 
books);
         repository.persistAndFlush(inventory);
     }
diff --git 
a/regressiontests/base-jpa/src/main/java/org/apache/causeway/testdomain/jpa/rest/JpaRestEndpointService.java
 
b/regressiontests/base-jpa/src/main/java/org/apache/causeway/testdomain/jpa/rest/JpaRestEndpointService.java
index 0d6339d43ff..67accf8c253 100644
--- 
a/regressiontests/base-jpa/src/main/java/org/apache/causeway/testdomain/jpa/rest/JpaRestEndpointService.java
+++ 
b/regressiontests/base-jpa/src/main/java/org/apache/causeway/testdomain/jpa/rest/JpaRestEndpointService.java
@@ -60,7 +60,7 @@ public class JpaRestEndpointService {
     private final Environment environment;
     private final RestEasyConfiguration restEasyConfiguration;
     private final WebAppContextPath webAppContextPath;
-    private final JpaTestFixtures jdoTestFixtures;
+    private final JpaTestFixtures jpaTestFixtures;
     private final InteractionService interactionService;
 
     public int getPort() {
@@ -70,7 +70,7 @@ public int getPort() {
         return port;
     }
 
-    private static final String INVENTORY_RESOURCE = 
"services/testdomain.jdo.InventoryResourceAlias";
+    private static final String INVENTORY_RESOURCE = 
"services/testdomain.jpa.InventoryResource";
 
     // -- NEW CLIENT
 
@@ -147,7 +147,7 @@ public Try<Can<JpaBook>> getMultipleBooks(final 
RestfulClient client) throws JAX
         var request = newInvocationBuilder(client,
                 INVENTORY_RESOURCE + "/actions/multipleBooks/invoke");
         var args = client.arguments()
-                .addActionParameter("nrOfBooks", 2)
+                .addActionParameter("nrOfBooks", 3)
                 .build();
 
         var response = request.post(args);
@@ -212,11 +212,11 @@ public Try<JpaInventoryJaxbVm> getInventoryAsJaxbVm(final 
RestfulClient client)
     public Try<Can<JpaBook>> getBooksFromInventoryAsJaxbVm(final RestfulClient 
client) {
 
         var objectId = interactionService.callAnonymous(
-                
()->jdoTestFixtures.getInventoryJaxbVmAsBookmark().identifier());
+                
()->jpaTestFixtures.getInventoryJaxbVmAsBookmark().identifier());
 
         // using domain object alias ...
         var request = newInvocationBuilder(client,
-                "objects/testdomain.jdo.JdoInventoryJaxbVmAlias/"
+                "objects/testdomain.jpa.JpaInventoryJaxbVmAlias/"
                         + objectId + "/actions/listBooks/invoke");
 
         var args = client.arguments()
diff --git 
a/regressiontests/rest-jpa/src/test/java/org/apache/causeway/testdomain/rest/jpa/RestServiceTest.java
 
b/regressiontests/rest-jpa/src/test/java/org/apache/causeway/testdomain/rest/jpa/RestServiceTest.java
index bcb67e779e1..f14bb4f652b 100644
--- 
a/regressiontests/rest-jpa/src/test/java/org/apache/causeway/testdomain/rest/jpa/RestServiceTest.java
+++ 
b/regressiontests/rest-jpa/src/test/java/org/apache/causeway/testdomain/rest/jpa/RestServiceTest.java
@@ -23,8 +23,10 @@
 
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.MethodOrderer;
+import org.junit.jupiter.api.Order;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestMethodOrder;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -53,7 +55,8 @@
     Configuration_usingJpa.class,
     CausewayModuleViewerRestfulObjectsJaxrsResteasy.class
 })
-@Disabled //TODO[causeway-regressiontests-CAUSEWAY-3866] not fully migrated 
from JDO to JPA yet
+@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
+//@Disabled //TODO[causeway-regressiontests-CAUSEWAY-3866] not fully migrated 
from JDO to JPA yet
 class RestServiceTest extends RegressionTestWithJpaFixtures {
 
     @LocalServerPort int port; // just for reference (not used)
@@ -68,7 +71,7 @@ void checkPrereq() {
         this.restfulClient = restService.newClient(useRequestDebugLogging);
     }
 
-    @Test
+    @Test @Order(1)
     void httpSessionInfo() {
         var digest = restService.getHttpSessionInfo(restfulClient)
                 .ifFailureFail();
@@ -81,7 +84,7 @@ void httpSessionInfo() {
         assertEquals("no http-session", httpSessionInfo);
     }
 
-    @Test
+    @Test @Order(2)
     void bookOfTheWeek_viaRestEndpoint() {
         var digest = restService.getRecommendedBookOfTheWeek(restfulClient)
                 .ifFailureFail();
@@ -92,7 +95,7 @@ void bookOfTheWeek_viaRestEndpoint() {
         assertEquals("Book of the week", bookOfTheWeek.getName());
     }
 
-    @Test
+    @Test @Order(3)
     void addNewBook_viaRestEndpoint() throws JAXBException {
         var newBook = JpaBook.of("REST Book", "A sample REST book for 
testing.", 77.,
                 "REST Author", "REST ISBN", "REST Publisher");
@@ -106,7 +109,7 @@ void addNewBook_viaRestEndpoint() throws JAXBException {
         assertEquals("REST Book", storedBook.getName());
     }
 
-    @Test
+    @Test @Order(4)
     void multipleBooks_viaRestEndpoint() throws JAXBException {
         var digest = restService.getMultipleBooks(restfulClient)
                 .ifFailureFail();
@@ -119,7 +122,7 @@ void multipleBooks_viaRestEndpoint() throws JAXBException {
         assertEquals(3, multipleBooks.size());
     }
 
-    @Test
+    @Test @Order(5)
     void bookOfTheWeek_asDto_viaRestEndpoint() {
         var digest = 
restService.getRecommendedBookOfTheWeekAsDto(restfulClient)
                 .ifFailureFail();
@@ -130,7 +133,7 @@ void bookOfTheWeek_asDto_viaRestEndpoint() {
         assertEquals("Book of the week", bookOfTheWeek.getName());
     }
 
-    @Test
+    @Test @Order(6)
     void multipleBooks_asDto_viaRestEndpoint() throws JAXBException {
         var digest = restService.getMultipleBooksAsDto(restfulClient)
                 .ifFailureFail();
@@ -144,7 +147,7 @@ void multipleBooks_asDto_viaRestEndpoint() throws 
JAXBException {
         }
     }
 
-    @Test
+    @Test @Order(7)
     void inventoryAsJaxbVm_viaRestEndpoint() {
         var digest = restService.getInventoryAsJaxbVm(restfulClient)
                 .ifFailureFail();
@@ -155,7 +158,7 @@ void inventoryAsJaxbVm_viaRestEndpoint() {
         assertEquals("Bookstore", inventoryAsJaxbVm.getName());
     }
 
-    @Test
+    @Test @Order(8)
     void listBooks_fromInventoryAsJaxbVm_viaRestEndpoint() {
         var digest = restService.getBooksFromInventoryAsJaxbVm(restfulClient)
                 .ifFailure(Assertions::fail);
@@ -170,7 +173,7 @@ void listBooks_fromInventoryAsJaxbVm_viaRestEndpoint() {
         assertEquals(3, multipleBooks.size());
     }
 
-    @Test
+    @Test @Order(9)
     void calendarEvent_echo_viaRestEndpoint() {
         var calSemantics = new CalendarEventSemantics();
         var calSample = calSemantics.getExamples().getElseFail(0);
diff --git 
a/viewers/restfulobjects/client/src/main/java/org/apache/causeway/viewer/restfulobjects/client/ActionParameterListBuilder.java
 
b/viewers/restfulobjects/client/src/main/java/org/apache/causeway/viewer/restfulobjects/client/ActionParameterListBuilder.java
index d7fd9260d12..da9ec64c3ad 100644
--- 
a/viewers/restfulobjects/client/src/main/java/org/apache/causeway/viewer/restfulobjects/client/ActionParameterListBuilder.java
+++ 
b/viewers/restfulobjects/client/src/main/java/org/apache/causeway/viewer/restfulobjects/client/ActionParameterListBuilder.java
@@ -42,6 +42,7 @@
 import org.jspecify.annotations.NonNull;
 
 /**
+ * Use {@link RestfulClient#arguments()} to get an instance.
  * @since 2.0 {@index}
  */
 public class ActionParameterListBuilder {
@@ -53,13 +54,6 @@ public class ActionParameterListBuilder {
 
     private final RestfulClient restfulClient;
 
-    /**
-     * @deprecated  - use {@link RestfulClient#arguments()}
-     */
-    @Deprecated
-    public ActionParameterListBuilder() {
-        this(null);
-    }
     public ActionParameterListBuilder(RestfulClient restfulClient) {
         this.restfulClient = restfulClient;
     }
@@ -116,9 +110,9 @@ public ActionParameterListBuilder addActionParameter(final 
String parameterName,
 
     public ActionParameterListBuilder addActionParameter(final String 
parameterName, final Blob blob) {
         var blobDto = new BlobDto();
-        blobDto.setName(blob.getName());
-        blobDto.setMimeType(blob.getMimeType().getBaseType());
-        blobDto.setBytes(blob.getBytes());
+        blobDto.setName(blob.name());
+        blobDto.setMimeType(blob.mimeType().getBaseType());
+        blobDto.setBytes(blob.bytes());
         var fundamentalTypeDto = new ValueWithTypeDto();
         fundamentalTypeDto.setType(ValueType.BLOB);
         fundamentalTypeDto.setBlob(blobDto);
@@ -129,8 +123,8 @@ public ActionParameterListBuilder addActionParameter(final 
String parameterName,
 
     public ActionParameterListBuilder addActionParameter(final String 
parameterName, final Clob clob) {
         var clobDto = new ClobDto();
-        clobDto.setName(clob.getName());
-        clobDto.setMimeType(clob.getMimeType().getBaseType());
+        clobDto.setName(clob.name());
+        clobDto.setMimeType(clob.mimeType().getBaseType());
         clobDto.setChars(clob.asString());
         var fundamentalTypeDto = new ValueWithTypeDto();
         fundamentalTypeDto.setType(ValueType.CLOB);

Reply via email to