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
