You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@causeway.apache.org by da...@apache.org on 2024/01/30 16:46:17 UTC
(causeway) 04/08: CAUSEWAY-3676: sketching out introducing mutations (3)
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch CAUSEWAY-3676
in repository https://gitbox.apache.org/repos/asf/causeway.git
commit 9924cc05742bc0976eaead9e45e3af5691533155
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Tue Jan 30 09:00:12 2024 +0000
CAUSEWAY-3676: sketching out introducing mutations (3)
---
.../graphql/viewer/test/e2e/Admin_IntegTest.java | 2 +
.../viewer/test/e2e/Calculator_IntegTest.java | 2 +
.../viewer/test/e2e/Department_IntegTest.java | 2 +
...g_IntegTest.find_depthead_and_change_name._.gql | 7 +++
...est.find_depthead_and_change_name.approved.json | 0
...egTest.java => DeptHeadMutating_IntegTest.java} | 58 ++++++++--------------
.../viewer/test/e2e/DeptHead_IntegTest.java | 2 +
.../graphql/viewer/test/e2e/Staff_IntegTest.java | 2 +
.../test/schema/GqlSchema_print_IntegTest.java | 2 +
.../src/test/resources/junit-platform.properties | 2 +
10 files changed, 41 insertions(+), 38 deletions(-)
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Admin_IntegTest.java b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Admin_IntegTest.java
index 61c9f41587..20ca803741 100644
--- a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Admin_IntegTest.java
+++ b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Admin_IntegTest.java
@@ -21,6 +21,7 @@ package org.apache.causeway.viewer.graphql.viewer.test.e2e;
import org.approvaltests.Approvals;
import org.approvaltests.reporters.DiffReporter;
import org.approvaltests.reporters.UseReporter;
+import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
import org.springframework.test.context.ActiveProfiles;
@@ -29,6 +30,7 @@ import lombok.val;
//NOT USING @Transactional since we are running server within same transaction otherwise
+@Order(20)
@ActiveProfiles("test")
public class Admin_IntegTest extends Abstract_IntegTest {
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.java b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.java
index d3c5ee98a3..90a5456d77 100644
--- a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.java
+++ b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.java
@@ -21,12 +21,14 @@ package org.apache.causeway.viewer.graphql.viewer.test.e2e;
import org.approvaltests.Approvals;
import org.approvaltests.reporters.DiffReporter;
import org.approvaltests.reporters.UseReporter;
+import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
import org.springframework.test.context.ActiveProfiles;
//NOT USING @Transactional since we are running server within same transaction otherwise
+@Order(30)
@ActiveProfiles("test")
public class Calculator_IntegTest extends Abstract_IntegTest {
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.java b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.java
index 1a8e1fb441..b24e66a06d 100644
--- a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.java
+++ b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.java
@@ -28,6 +28,7 @@ import org.approvaltests.Approvals;
import org.approvaltests.reporters.DiffReporter;
import org.approvaltests.reporters.UseReporter;
import org.assertj.core.api.Assertions;
+import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
import static org.assertj.core.api.AssertionsForInterfaceTypes.assertThat;
@@ -44,6 +45,7 @@ import lombok.val;
//NOT USING @Transactional since we are running server within same transaction otherwise
+@Order(40)
@ActiveProfiles("test")
public class Department_IntegTest extends Abstract_IntegTest {
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/DeptHeadMutating_IntegTest.find_depthead_and_change_name._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/DeptHeadMutating_IntegTest.find_depthead_and_change_name._.gql
new file mode 100644
index 0000000000..1c79eb6819
--- /dev/null
+++ b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/DeptHeadMutating_IntegTest.find_depthead_and_change_name._.gql
@@ -0,0 +1,7 @@
+mutation {
+ invokeIdempotent(newName: "Foo", target: {id: 123}) {
+ name {
+ get
+ }
+ }
+}
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/DeptHeadMutating_IntegTest.find_depthead_and_change_name.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/DeptHeadMutating_IntegTest.find_depthead_and_change_name.approved.json
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/DeptHead_IntegTest.java b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/DeptHeadMutating_IntegTest.java
similarity index 64%
copy from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/DeptHead_IntegTest.java
copy to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/DeptHeadMutating_IntegTest.java
index 4b9019d10c..4715c571c3 100644
--- a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/DeptHead_IntegTest.java
+++ b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/DeptHeadMutating_IntegTest.java
@@ -18,48 +18,38 @@
*/
package org.apache.causeway.viewer.graphql.viewer.test.e2e;
+import org.apache.causeway.viewer.graphql.viewer.test.CausewayViewerGraphqlTestModuleIntegTestAbstract;
+
+import org.apache.causeway.viewer.graphql.viewer.test.domain.dept.DeptHead;
+
import org.approvaltests.Approvals;
import org.approvaltests.reporters.DiffReporter;
import org.approvaltests.reporters.UseReporter;
+import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
-import static org.assertj.core.api.AssertionsForInterfaceTypes.assertThat;
-
+import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.transaction.annotation.Propagation;
-import org.apache.causeway.viewer.graphql.viewer.test.domain.dept.DeptHead;
+import lombok.val;
+
+import static org.assertj.core.api.AssertionsForInterfaceTypes.assertThat;
//NOT USING @Transactional since we are running server within same transaction otherwise
+@SpringBootTest(
+ classes = {
+ CausewayViewerGraphqlTestModuleIntegTestAbstract.TestApp.class
+ },
+ webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
+ properties = {
+ "causeway.viewer.graphql.api-variant=QUERY_AND_MUTATIONS"
+ }
+)
+@Order(110)
@ActiveProfiles("test")
-public class DeptHead_IntegTest extends Abstract_IntegTest {
-
- @Test
- @UseReporter(DiffReporter.class)
- void find_depthead_by_name() throws Exception {
-
- // when, then
- Approvals.verify(submit(), jsonOptions());
- }
-
-
- @Test
- @UseReporter(DiffReporter.class)
- void find_depthead_and_change_name_invalid() throws Exception {
-
- String response = submit();
-
- // then payload
- Approvals.verify(response, jsonOptions());
- }
- @Test
- @UseReporter(DiffReporter.class)
- void find_depthead_and_change_name_invoke_invalid() throws Exception {
-
- // when, then
- Approvals.verify(submit(), jsonOptions());
- }
+public class DeptHeadMutating_IntegTest extends Abstract_IntegTest {
@Test
@UseReporter(DiffReporter.class)
@@ -71,14 +61,6 @@ public class DeptHead_IntegTest extends Abstract_IntegTest {
// then payload
Approvals.verify(response, jsonOptions());
- // and also in the database
- DeptHead deptHeadAfter = transactionService.callTransactional(
- Propagation.REQUIRED,
- () -> deptHeadRepository.findByName("Prof. Richard Horwich")
- ).valueAsNullableElseFail();
-
- assertThat(deptHeadAfter).isNotNull();
}
-
}
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/DeptHead_IntegTest.java b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/DeptHead_IntegTest.java
index 4b9019d10c..1ee91e96e9 100644
--- a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/DeptHead_IntegTest.java
+++ b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/DeptHead_IntegTest.java
@@ -21,6 +21,7 @@ package org.apache.causeway.viewer.graphql.viewer.test.e2e;
import org.approvaltests.Approvals;
import org.approvaltests.reporters.DiffReporter;
import org.approvaltests.reporters.UseReporter;
+import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
import static org.assertj.core.api.AssertionsForInterfaceTypes.assertThat;
@@ -32,6 +33,7 @@ import org.apache.causeway.viewer.graphql.viewer.test.domain.dept.DeptHead;
//NOT USING @Transactional since we are running server within same transaction otherwise
+@Order(50)
@ActiveProfiles("test")
public class DeptHead_IntegTest extends Abstract_IntegTest {
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Staff_IntegTest.java b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Staff_IntegTest.java
index 0d7ac838aa..3eb3f513c0 100644
--- a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Staff_IntegTest.java
+++ b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Staff_IntegTest.java
@@ -23,6 +23,7 @@ import java.util.Optional;
import org.approvaltests.Approvals;
import org.approvaltests.reporters.DiffReporter;
import org.approvaltests.reporters.UseReporter;
+import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
@@ -40,6 +41,7 @@ import lombok.val;
//NOT USING @Transactional since we are running server within same transaction otherwise
+@Order(60)
@ActiveProfiles("test")
public class Staff_IntegTest extends Abstract_IntegTest {
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/schema/GqlSchema_print_IntegTest.java b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/schema/GqlSchema_print_IntegTest.java
index d8a8473065..e2b5db13c8 100644
--- a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/schema/GqlSchema_print_IntegTest.java
+++ b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/schema/GqlSchema_print_IntegTest.java
@@ -27,6 +27,7 @@ import javax.inject.Inject;
import org.approvaltests.core.Options;
import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
import org.springframework.transaction.annotation.Transactional;
@@ -43,6 +44,7 @@ import lombok.val;
import graphql.schema.idl.SchemaPrinter;
+@Order(10)
@Transactional
public class GqlSchema_print_IntegTest extends CausewayViewerGraphqlTestModuleIntegTestAbstract {
diff --git a/viewers/graphql/test/src/test/resources/junit-platform.properties b/viewers/graphql/test/src/test/resources/junit-platform.properties
new file mode 100644
index 0000000000..f61913bd47
--- /dev/null
+++ b/viewers/graphql/test/src/test/resources/junit-platform.properties
@@ -0,0 +1,2 @@
+# ClassOrderer$OrderAnnotation sorts classes based on their @Order annotation
+junit.jupiter.testclass.order.default=org.junit.jupiter.api.ClassOrderer$OrderAnnotation
\ No newline at end of file