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 71ceb9d267aa1451db778f2929eeb72434559ca0
Author: danhaywood <[email protected]>
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

Reply via email to