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);