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/02/18 12:56:59 UTC
(causeway) 01/01: CAUSEWAY-3676: makes e2e tests more generic
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 bb51d6026382c5f28f9b7b581c1d6e048d74c1a5
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sun Feb 18 12:55:22 2024 +0000
CAUSEWAY-3676: makes e2e tests more generic
---
bom/pom.xml | 20 +-
viewers/graphql/model/pom.xml | 5 +
.../graphql/model/src/main/java/module-info.java | 1 +
.../marshallers/ScalarMarshallerJdk8LocalDate.java | 1 +
.../marshallers/ScalarMarshallerLongPrimitive.java | 4 +-
.../marshallers/ScalarMarshallerLongWrapper.java | 3 +-
.../ScalarMarshallerShortPrimitive.java | 3 +-
.../marshallers/ScalarMarshallerShortWrapper.java | 3 +-
...ayViewerGraphqlTestModuleIntegTestAbstract.java | 63 +++++--
.../viewer/test/domain/calc/Calculator.java | 12 ++
...ntegTest.each.action_with_disabled_param._.gql} | 0
....each.action_with_disabled_param.approved.json} | 0
..._IntegTest.each.action_with_hidden_param._.gql} | 0
...st.each.action_with_hidden_param.approved.json} | 0
...gql => Admin_IntegTest.each.admin_action._.gql} | 0
...dmin_IntegTest.each.admin_action.approved.json} | 0
... Admin_IntegTest.each.other_admin_action._.gql} | 0
...ntegTest.each.other_admin_action.approved.json} | 0
.../graphql/viewer/test/e2e/Admin_IntegTest.java | 78 ++++++++
...lculator_IntegTest.each.add_big_decimals._.gql} | 0
..._IntegTest.each.add_big_decimals.approved.json} | 0
...lculator_IntegTest.each.add_big_integers._.gql} | 0
..._IntegTest.each.add_big_integers.approved.json} | 0
...lator_IntegTest.each.add_double_wrappers._.gql} | 0
...tegTest.each.add_double_wrappers.approved.json} | 0
...=> Calculator_IntegTest.each.add_doubles._.gql} | 0
...lator_IntegTest.each.add_doubles.approved.json} | 0
...ulator_IntegTest.each.add_float_wrappers._.gql} | 0
...ntegTest.each.add_float_wrappers.approved.json} | 0
... => Calculator_IntegTest.each.add_floats._.gql} | 0
...ulator_IntegTest.each.add_floats.approved.json} | 0
...ator_IntegTest.each.add_integer_wrappers._.gql} | 0
...egTest.each.add_integer_wrappers.approved.json} | 0
...> Calculator_IntegTest.each.add_integers._.gql} | 0
...ator_IntegTest.each.add_integers.approved.json} | 0
... Calculator_IntegTest.each.boolean_and_1._.gql} | 0
...tor_IntegTest.each.boolean_and_1.approved.json} | 0
... Calculator_IntegTest.each.boolean_and_2._.gql} | 0
...tor_IntegTest.each.boolean_and_2.approved.json} | 0
...=> Calculator_IntegTest.each.boolean_not._.gql} | 0
...lator_IntegTest.each.boolean_not.approved.json} | 0
...> Calculator_IntegTest.each.boolean_or_1._.gql} | 0
...ator_IntegTest.each.boolean_or_1.approved.json} | 0
...> Calculator_IntegTest.each.boolean_or_2._.gql} | 0
...ator_IntegTest.each.boolean_or_2.approved.json} | 0
....gql => Calculator_IntegTest.each.concat._.gql} | 0
...Calculator_IntegTest.each.concat.approved.json} | 0
... => Calculator_IntegTest.each.next_month._.gql} | 0
...ulator_IntegTest.each.next_month.approved.json} | 0
...l => Calculator_IntegTest.each.plus_days._.gql} | 0
...culator_IntegTest.each.plus_days.approved.json} | 0
...Calculator_IntegTest.each.plus_joda_days._.gql} | 0
...or_IntegTest.each.plus_joda_days.approved.json} | 0
...alculator_IntegTest.each.scenario_concat._.gql} | 0
...r_IntegTest.each.scenario_concat.approved.json} | 0
.../viewer/test/e2e/Calculator_IntegTest.java | 81 ++++++++
...tegTest.change_department_name_visibility._.gql | 0
...change_department_name_visibility.approved.json | 0
.../DepartmentMutating_IntegTest.java | 2 +-
...artment_IntegTest.each.create_department._.gql} | 0
...IntegTest.each.create_department.approved.json} | 0
...ch.create_department_name_param_disabled._.gql} | 0
...e_department_name_param_disabled.approved.json} | 0
...ment_IntegTest.each.find_all_departments._.gql} | 0
...egTest.each.find_all_departments.approved.json} | 0
..._department_and_add_staff_member_choices._.gql} | 0
...ent_and_add_staff_member_choices.approved.json} | 0
...ch.find_department_and_add_staff_members._.gql} | 0
...department_and_add_staff_members.approved.json} | 0
..._department_and_change_head_autocomplete._.gql} | 0
...ent_and_change_head_autocomplete.approved.json} | 0
....find_department_and_change_head_default._.gql} | 0
...partment_and_change_head_default.approved.json} | 0
....find_department_and_change_name_invalid._.gql} | 0
...partment_and_change_name_invalid.approved.json} | 0
...nd_department_and_edit_head_autocomplete._.gql} | 0
...tment_and_edit_head_autocomplete.approved.json} | 0
...and_edit_head_autocomplete_none_matching._.gql} | 0
..._head_autocomplete_none_matching.approved.json} | 0
....each.find_department_and_list_its_staff._.gql} | 0
...nd_department_and_list_its_staff.approved.json} | 0
...partment_and_remove_staff_member_choices._.gql} | 0
..._and_remove_staff_member_choices.approved.json} | 0
...t_IntegTest.each.find_department_by_name._.gql} | 0
...est.each.find_department_by_name.approved.json} | 0
...scenario_find_department_and_change_name._.gql} | 0
..._find_department_and_change_name.approved.json} | 0
.../viewer/test/e2e/Department_IntegTest.java | 84 +++++++++
...eptHead_IntegTest.each.create_department._.gql} | 0
...IntegTest.each.create_department.approved.json} | 0
...ch.find_depthead_and_change_name_invalid._.gql} | 0
...depthead_and_change_name_invalid.approved.json} | 0
..._depthead_and_change_name_invoke_invalid._.gql} | 0
...d_and_change_name_invoke_invalid.approved.json} | 0
...ead_IntegTest.each.find_depthead_by_name._.gql} | 0
...gTest.each.find_depthead_by_name.approved.json} | 0
.../viewer/test/e2e/DeptHead_IntegTest.java | 82 +++++++++
.../StaffMutating_IntegTest.java | 2 +-
...Mutating_IntegTest.staff_member_edit_name._.gql | 0
..._IntegTest.staff_member_edit_name.approved.json | 0
...each.create_staff_member_with_department._.gql} | 0
...ate_staff_member_with_department.approved.json} | 0
....each.find_staff_member_by_name_and_edit._.gql} | 0
...nd_staff_member_by_name_and_edit.approved.json} | 0
...ff_member_by_name_and_edit_grade_choices._.gql} | 0
...r_by_name_and_edit_grade_choices.approved.json} | 0
...ff_IntegTest.each.list_all_staff_members._.gql} | 0
...Test.each.list_all_staff_members.approved.json} | 0
...Test.each.staff_member_name_edit_invalid._.gql} | 0
...h.staff_member_name_edit_invalid.approved.json} | 0
...ntegTest.each.staff_member_name_validate._.gql} | 0
....each.staff_member_name_validate.approved.json} | 0
.../graphql/viewer/test/e2e/Staff_IntegTest.java | 93 ++++++++++
.../e2e/queryandmutations/Admin_IntegTest.java | 84 ---------
.../queryandmutations/Calculator_IntegTest.java | 180 ------------------
.../queryandmutations/Department_IntegTest.java | 204 ---------------------
.../test/e2e/scenario/Calculator_IntegTest.java | 48 -----
.../test/e2e/scenario/Department_IntegTest.java | 46 -----
...Mutating_IntegTest.change_department_name._.gql | 0
..._IntegTest.change_department_name.approved.json | 0
.../DeptHeadMutating_IntegTest.java | 16 +-
..._IntegTest.find_depthead_and_change_name._.gql} | 0
...st.find_depthead_and_change_name.approved.json} | 0
.../DeptHead_2_IntegTest.java} | 30 +--
..._staff_member_by_name_and_download_photo._.gql} | 0
...ember_by_name_and_download_photo.approved.json} | 0
.../Staff_2_IntegTest.java} | 81 +-------
viewers/graphql/test/src/test/resources/schema.gql | 124 +++++++++++--
128 files changed, 620 insertions(+), 730 deletions(-)
diff --git a/bom/pom.xml b/bom/pom.xml
index 4f49c6aef1..d475c1deb3 100644
--- a/bom/pom.xml
+++ b/bom/pom.xml
@@ -120,6 +120,7 @@ It is therefore a copy of org.apache:apache, with customisations clearly identif
<git-commit-id-plugin.version>4.9.10</git-commit-id-plugin.version>
<graphql-java.version>19.2</graphql-java.version>
+ <graphql-java-extended-scalars.version>19.1</graphql-java-extended-scalars.version>
<guava.version>33.0.0-jre</guava.version>
<htmlparser.version>2.1</htmlparser.version>
@@ -1497,13 +1498,6 @@ It is therefore a copy of org.apache:apache, with customisations clearly identif
</dependency>
- <!-- dependency convergence clash with org.apache.cxf:cxf-core:3.4.0 (used
- by causeway-mappings-jaxrsclient-impl) TODO ... jaxrsclient was removed -->
- <dependency>
- <groupId>com.fasterxml.woodstox</groupId>
- <artifactId>woodstox-core</artifactId>
- <version>6.6.0</version>
- </dependency>
<dependency>
<groupId>org.codehaus.woodstox</groupId>
<artifactId>stax2-api</artifactId>
@@ -1519,11 +1513,23 @@ It is therefore a copy of org.apache:apache, with customisations clearly identif
<artifactId>org.eclipse.persistence.sdo</artifactId>
<version>2.7.14</version> <!-- do not upgrade 2.x to 3.x or higher until Spring 6 -->
</dependency>
+ <!-- dependency convergence clash with org.apache.cxf:cxf-core:3.4.0 (used
+ by causeway-mappings-jaxrsclient-impl) TODO ... jaxrsclient was removed -->
+ <dependency>
+ <groupId>com.fasterxml.woodstox</groupId>
+ <artifactId>woodstox-core</artifactId>
+ <version>6.6.0</version>
+ </dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.3.9</version> <!-- do not upgrade 2.x to 3.x or higher until Spring 6 -->
</dependency>
+ <dependency>
+ <groupId>com.graphql-java</groupId>
+ <artifactId>graphql-java-extended-scalars</artifactId>
+ <version>${graphql-java-extended-scalars.version}</version>
+ </dependency>
<dependency>
<groupId>org.ow2.asm</groupId>
diff --git a/viewers/graphql/model/pom.xml b/viewers/graphql/model/pom.xml
index 6006583e39..234aaefea6 100644
--- a/viewers/graphql/model/pom.xml
+++ b/viewers/graphql/model/pom.xml
@@ -71,6 +71,11 @@
<artifactId>graphql-java</artifactId>
</dependency>
+ <dependency>
+ <groupId>com.graphql-java</groupId>
+ <artifactId>graphql-java-extended-scalars</artifactId>
+ </dependency>
+
<!-- TEST DEPENDENCIES -->
diff --git a/viewers/graphql/model/src/main/java/module-info.java b/viewers/graphql/model/src/main/java/module-info.java
index 8588e7499a..4da4776905 100644
--- a/viewers/graphql/model/src/main/java/module-info.java
+++ b/viewers/graphql/model/src/main/java/module-info.java
@@ -15,4 +15,5 @@ module org.apache.causeway.incubator.viewer.graphql.model {
requires org.apache.causeway.core.metamodel;
requires com.graphqljava;
requires spring.boot.autoconfigure;
+ requires com.graphqljava.extendedscalars;
}
\ No newline at end of file
diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/marshallers/ScalarMarshallerJdk8LocalDate.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/marshallers/ScalarMarshallerJdk8LocalDate.java
index dd1a378690..6251cdae1a 100644
--- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/marshallers/ScalarMarshallerJdk8LocalDate.java
+++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/marshallers/ScalarMarshallerJdk8LocalDate.java
@@ -25,6 +25,7 @@ import javax.annotation.Priority;
import javax.inject.Inject;
import graphql.Scalars;
+import graphql.scalars.ExtendedScalars;
import org.springframework.stereotype.Component;
diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/marshallers/ScalarMarshallerLongPrimitive.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/marshallers/ScalarMarshallerLongPrimitive.java
index 62f059336a..2eed98dfe5 100644
--- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/marshallers/ScalarMarshallerLongPrimitive.java
+++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/marshallers/ScalarMarshallerLongPrimitive.java
@@ -21,7 +21,7 @@ package org.apache.causeway.viewer.graphql.model.marshallers;
import javax.annotation.Priority;
import javax.inject.Inject;
-import graphql.Scalars;
+import graphql.scalars.ExtendedScalars;
import org.springframework.stereotype.Component;
@@ -39,7 +39,7 @@ public class ScalarMarshallerLongPrimitive extends ScalarMarshallerAbstract<Long
@Inject
public ScalarMarshallerLongPrimitive(final CausewayConfiguration causewayConfiguration) {
- super(long.class, Scalars.GraphQLString, causewayConfiguration);
+ super(long.class, ExtendedScalars.GraphQLLong, causewayConfiguration);
}
@Override
diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/marshallers/ScalarMarshallerLongWrapper.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/marshallers/ScalarMarshallerLongWrapper.java
index 190b372a8c..6120d1fd36 100644
--- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/marshallers/ScalarMarshallerLongWrapper.java
+++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/marshallers/ScalarMarshallerLongWrapper.java
@@ -22,6 +22,7 @@ import javax.annotation.Priority;
import javax.inject.Inject;
import graphql.Scalars;
+import graphql.scalars.ExtendedScalars;
import org.springframework.stereotype.Component;
@@ -39,7 +40,7 @@ public class ScalarMarshallerLongWrapper extends ScalarMarshallerAbstract<Long>
@Inject
public ScalarMarshallerLongWrapper(final CausewayConfiguration causewayConfiguration) {
- super(Long.class, Scalars.GraphQLString, causewayConfiguration);
+ super(Long.class, ExtendedScalars.GraphQLLong, causewayConfiguration);
}
@Override
diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/marshallers/ScalarMarshallerShortPrimitive.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/marshallers/ScalarMarshallerShortPrimitive.java
index 2763d06d4b..5b0ec222ec 100644
--- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/marshallers/ScalarMarshallerShortPrimitive.java
+++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/marshallers/ScalarMarshallerShortPrimitive.java
@@ -22,6 +22,7 @@ import javax.annotation.Priority;
import javax.inject.Inject;
import graphql.Scalars;
+import graphql.scalars.ExtendedScalars;
import org.springframework.stereotype.Component;
@@ -36,7 +37,7 @@ public class ScalarMarshallerShortPrimitive extends ScalarMarshallerAbstract<Sho
@Inject
public ScalarMarshallerShortPrimitive(final CausewayConfiguration causewayConfiguration) {
- super(short.class, Scalars.GraphQLInt, causewayConfiguration);
+ super(short.class, ExtendedScalars.GraphQLShort, causewayConfiguration);
}
@Override
diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/marshallers/ScalarMarshallerShortWrapper.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/marshallers/ScalarMarshallerShortWrapper.java
index 20393403d4..e371932226 100644
--- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/marshallers/ScalarMarshallerShortWrapper.java
+++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/marshallers/ScalarMarshallerShortWrapper.java
@@ -22,6 +22,7 @@ import javax.annotation.Priority;
import javax.inject.Inject;
import graphql.Scalars;
+import graphql.scalars.ExtendedScalars;
import org.springframework.stereotype.Component;
@@ -36,7 +37,7 @@ public class ScalarMarshallerShortWrapper extends ScalarMarshallerAbstract<Short
@Inject
public ScalarMarshallerShortWrapper(final CausewayConfiguration causewayConfiguration) {
- super(Short.class, Scalars.GraphQLInt, causewayConfiguration);
+ super(Short.class, ExtendedScalars.GraphQLShort, causewayConfiguration);
}
@Override
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/CausewayViewerGraphqlTestModuleIntegTestAbstract.java b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/CausewayViewerGraphqlTestModuleIntegTestAbstract.java
index e46df99789..0bccb229d4 100644
--- a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/CausewayViewerGraphqlTestModuleIntegTestAbstract.java
+++ b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/CausewayViewerGraphqlTestModuleIntegTestAbstract.java
@@ -50,6 +50,7 @@ import org.springframework.context.annotation.PropertySource;
import org.springframework.context.annotation.PropertySources;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.graphql.test.tester.HttpGraphQlTester;
+import org.springframework.lang.Nullable;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.web.reactive.server.WebTestClient;
@@ -69,6 +70,7 @@ import org.apache.causeway.viewer.graphql.viewer.test.domain.UniversityModule;
import static org.apache.causeway.commons.internal.assertions._Assert.assertNotNull;
+import lombok.SneakyThrows;
import lombok.Value;
import lombok.val;
@@ -157,36 +159,50 @@ public abstract class CausewayViewerGraphqlTestModuleIntegTestAbstract {
* @return the response body as a string
* @throws Exception if an error occurs during the submission
*/
- protected String submit() throws Exception{
+ protected String submit() {
return submit(Collections.emptyMap());
}
- protected String submit(Map<String,String> replacements) throws Exception{
+ @SneakyThrows
+ protected String submit(Map<String,String> replacements) {
val httpRequest = buildRequest(testInfo, "._.gql", replacements);
return submitRequest(httpRequest);
}
- protected String submit(String variant) throws Exception{
+ protected String submit(String variant) {
return submit(variant, Collections.emptyMap());
}
- protected String submit(String variant, Map<String,String> replacements) throws Exception{
+ @SneakyThrows
+ protected String submit(String variant, Map<String,String> replacements) {
val httpRequest = buildRequest(testInfo, "._." +variant + ".gql", replacements);
return submitRequest(httpRequest);
}
+ @SneakyThrows
+ protected String submitFileNamed(final String fileName) {
+ val httpRequest = buildRequest(fileName, Collections.emptyMap());
+ return submitRequest(httpRequest);
+ }
+
@Value
protected static class GqlBody {
String query;
}
+ @SneakyThrows
protected HttpRequest buildRequest(
final TestInfo testInfo,
final String resourceSuffix,
- final Map<String, String> replacements) throws IOException {
+ final Map<String, String> replacements) {
val testMethodName = testInfo.getTestMethod().map(Method::getName).get();
val resourceName = getClass().getSimpleName() + "." + testMethodName + resourceSuffix;
+ return buildRequest(resourceName, replacements);
+ }
+
+ @SneakyThrows
+ protected HttpRequest buildRequest(String resourceName, Map<String, String> replacements) {
String resourceContents = readResource(resourceName);
String resourceContent = replace(resourceContents, replacements);
@@ -237,22 +253,33 @@ public abstract class CausewayViewerGraphqlTestModuleIntegTestAbstract {
}
protected Options jsonOptions() {
- return jsonOptions(BookmarkOptions.SCRUB);
+ return jsonOptions(null, BookmarkOptions.SCRUB);
}
protected Options jsonOptions(BookmarkOptions bookmarkOptions) {
- return new Options().withScrubber(s -> {
- try {
- String prettyJson = objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(objectMapper.readTree(s));
- if (bookmarkOptions == BookmarkOptions.SCRUB) {
- prettyJson = prettyJson.replaceAll(":\\d+/", ":NNN/");
- }
- return prettyJson;
- } catch (JsonProcessingException e) {
- throw new RuntimeException(e);
- }
- })
- .forFile().withExtension(".json");
+ return jsonOptions(null, bookmarkOptions);
+ }
+
+ public Options jsonOptions(Options options) {
+ return jsonOptions(options, BookmarkOptions.SCRUB);
+ }
+
+ public Options jsonOptions(@Nullable Options options, BookmarkOptions bookmarkOptions) {
+ if (options == null) {
+ options = new Options();
+ }
+ return options.withScrubber(s -> {
+ try {
+ String prettyJson = objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(objectMapper.readTree(s));
+ if (bookmarkOptions == BookmarkOptions.SCRUB) {
+ prettyJson = prettyJson.replaceAll(":\\d+/", ":NNN/");
+ }
+ return prettyJson;
+ } catch (JsonProcessingException e) {
+ throw new RuntimeException(e);
+ }
+ })
+ .forFile().withExtension(".json");
}
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/domain/calc/Calculator.java b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/domain/calc/Calculator.java
index 64ad99c6e2..37614c261c 100644
--- a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/domain/calc/Calculator.java
+++ b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/domain/calc/Calculator.java
@@ -3,6 +3,7 @@ package org.apache.causeway.viewer.graphql.viewer.test.domain.calc;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.time.LocalDate;
+import java.time.ZonedDateTime;
import javax.annotation.Priority;
import javax.inject.Inject;
@@ -89,11 +90,22 @@ public class Calculator {
return date.plusDays(numDays);
}
+ @Action(semantics = SemanticsOf.SAFE)
+ public ZonedDateTime plusDaysAndHoursAndMinutes(ZonedDateTime dateTime, int numDays, int numHours, int numMinutes) {
+ return dateTime.plusDays(numDays).plusHours(numHours).plusMinutes(numMinutes);
+ }
+
@Action(semantics = SemanticsOf.SAFE)
public org.joda.time.LocalDate plusJodaDays(org.joda.time.LocalDate date, int numDays) {
return date.plusDays(numDays);
}
+ @Action(semantics = SemanticsOf.SAFE)
+ public org.joda.time.DateTime plusJodaDaysAndHoursAndMinutes(org.joda.time.DateTime dateTime, int numDays, int numHours, int numMinutes) {
+ return dateTime.plusDays(numDays).plusHours(numHours).plusMinutes(numMinutes);
+ }
+
+
@Action(semantics = SemanticsOf.SAFE)
public boolean and(boolean x, boolean y) {
return x & y;
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Admin_IntegTest.action_with_disabled_param._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Admin_IntegTest.each.action_with_disabled_param._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Admin_IntegTest.action_with_disabled_param._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Admin_IntegTest.each.action_with_disabled_param._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Admin_IntegTest.action_with_disabled_param.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Admin_IntegTest.each.action_with_disabled_param.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Admin_IntegTest.action_with_disabled_param.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Admin_IntegTest.each.action_with_disabled_param.approved.json
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Admin_IntegTest.action_with_hidden_param._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Admin_IntegTest.each.action_with_hidden_param._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Admin_IntegTest.action_with_hidden_param._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Admin_IntegTest.each.action_with_hidden_param._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Admin_IntegTest.action_with_hidden_param.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Admin_IntegTest.each.action_with_hidden_param.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Admin_IntegTest.action_with_hidden_param.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Admin_IntegTest.each.action_with_hidden_param.approved.json
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Admin_IntegTest.admin_action._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Admin_IntegTest.each.admin_action._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Admin_IntegTest.admin_action._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Admin_IntegTest.each.admin_action._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Admin_IntegTest.admin_action.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Admin_IntegTest.each.admin_action.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Admin_IntegTest.admin_action.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Admin_IntegTest.each.admin_action.approved.json
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Admin_IntegTest.other_admin_action._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Admin_IntegTest.each.other_admin_action._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Admin_IntegTest.other_admin_action._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Admin_IntegTest.each.other_admin_action._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Admin_IntegTest.other_admin_action.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Admin_IntegTest.each.other_admin_action.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Admin_IntegTest.other_admin_action.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Admin_IntegTest.each.other_admin_action.approved.json
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
new file mode 100644
index 0000000000..b5499d2194
--- /dev/null
+++ b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Admin_IntegTest.java
@@ -0,0 +1,78 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.causeway.viewer.graphql.viewer.test.e2e;
+
+import org.approvaltests.Approvals;
+import org.approvaltests.integrations.junit5.JupiterApprovals;
+import org.approvaltests.reporters.DiffReporter;
+import org.approvaltests.reporters.UseReporter;
+import org.junit.jupiter.api.DynamicTest;
+import org.junit.jupiter.api.Order;
+import org.junit.jupiter.api.Test;
+
+import org.junit.jupiter.api.TestFactory;
+
+import org.springframework.test.context.ActiveProfiles;
+
+import org.apache.causeway.viewer.graphql.viewer.test.e2e.Abstract_IntegTest;
+
+import lombok.val;
+
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.stream.Collectors;
+
+
+//NOT USING @Transactional since we are running server within same transaction otherwise
+@Order(20)
+@ActiveProfiles("test")
+public class Admin_IntegTest extends Abstract_IntegTest {
+
+ @TestFactory
+ Iterable<DynamicTest> each() throws IOException, URISyntaxException {
+
+ val integClassName = getClass().getSimpleName();
+ val classUrl = getClass().getResource(integClassName + ".class");
+ Path classPath = Paths.get(classUrl.toURI());
+ Path directoryPath = classPath.getParent();
+
+ return Files.walk(directoryPath)
+ .filter(Files::isRegularFile)
+ .filter(file -> {
+ String fileName = file.getFileName().toString();
+ return fileName.startsWith(integClassName) && fileName.endsWith("._.gql");
+ })
+ .map(file -> {
+ String fileName = file.getFileName().toString();
+ String testName = fileName.substring(integClassName.length() + ".each.".length()).replace("._.gql", "");
+ return JupiterApprovals.dynamicTest(
+ testName,
+ options -> {
+ Approvals.verify(submitFileNamed(fileName), jsonOptions(options));
+ afterEach();
+ beforeEach();
+ });
+ })
+ .collect(Collectors.toList());
+ }
+
+}
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.add_big_decimals._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_big_decimals._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.add_big_decimals._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_big_decimals._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.add_big_decimals.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_big_decimals.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.add_big_decimals.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_big_decimals.approved.json
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.add_big_integers._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_big_integers._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.add_big_integers._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_big_integers._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.add_big_integers.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_big_integers.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.add_big_integers.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_big_integers.approved.json
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.add_double_wrappers._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_double_wrappers._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.add_double_wrappers._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_double_wrappers._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.add_double_wrappers.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_double_wrappers.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.add_double_wrappers.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_double_wrappers.approved.json
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.add_doubles._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_doubles._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.add_doubles._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_doubles._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.add_doubles.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_doubles.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.add_doubles.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_doubles.approved.json
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.add_float_wrappers._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_float_wrappers._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.add_float_wrappers._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_float_wrappers._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.add_float_wrappers.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_float_wrappers.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.add_float_wrappers.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_float_wrappers.approved.json
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.add_floats._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_floats._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.add_floats._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_floats._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.add_floats.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_floats.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.add_floats.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_floats.approved.json
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.add_integer_wrappers._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_integer_wrappers._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.add_integer_wrappers._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_integer_wrappers._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.add_integer_wrappers.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_integer_wrappers.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.add_integer_wrappers.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_integer_wrappers.approved.json
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.add_integers._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_integers._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.add_integers._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_integers._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.add_integers.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_integers.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.add_integers.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_integers.approved.json
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.boolean_and_1._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.boolean_and_1._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.boolean_and_1._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.boolean_and_1._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.boolean_and_1.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.boolean_and_1.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.boolean_and_1.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.boolean_and_1.approved.json
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.boolean_and_2._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.boolean_and_2._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.boolean_and_2._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.boolean_and_2._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.boolean_and_2.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.boolean_and_2.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.boolean_and_2.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.boolean_and_2.approved.json
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.boolean_not._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.boolean_not._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.boolean_not._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.boolean_not._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.boolean_not.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.boolean_not.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.boolean_not.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.boolean_not.approved.json
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.boolean_or_1._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.boolean_or_1._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.boolean_or_1._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.boolean_or_1._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.boolean_or_1.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.boolean_or_1.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.boolean_or_1.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.boolean_or_1.approved.json
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.boolean_or_2._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.boolean_or_2._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.boolean_or_2._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.boolean_or_2._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.boolean_or_2.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.boolean_or_2.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.boolean_or_2.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.boolean_or_2.approved.json
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.concat._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.concat._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.concat._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.concat._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.concat.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.concat.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.concat.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.concat.approved.json
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.next_month._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.next_month._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.next_month._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.next_month._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.next_month.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.next_month.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.next_month.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.next_month.approved.json
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.plus_days._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.plus_days._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.plus_days._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.plus_days._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.plus_days.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.plus_days.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.plus_days.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.plus_days.approved.json
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.plus_joda_days._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.plus_joda_days._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.plus_joda_days._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.plus_joda_days._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.plus_joda_days.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.plus_joda_days.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.plus_joda_days.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.plus_joda_days.approved.json
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/scenario/Calculator_IntegTest.concat._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.scenario_concat._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/scenario/Calculator_IntegTest.concat._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.scenario_concat._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/scenario/Calculator_IntegTest.concat.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.scenario_concat.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/scenario/Calculator_IntegTest.concat.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.scenario_concat.approved.json
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
new file mode 100644
index 0000000000..ad95af5cfd
--- /dev/null
+++ b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.java
@@ -0,0 +1,81 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.causeway.viewer.graphql.viewer.test.e2e;
+
+import lombok.SneakyThrows;
+import lombok.val;
+
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.Collections;
+import java.util.stream.Collectors;
+
+import org.approvaltests.Approvals;
+import org.approvaltests.core.Options;
+import org.approvaltests.integrations.junit5.JupiterApprovals;
+import org.approvaltests.reporters.DiffReporter;
+import org.approvaltests.reporters.UseReporter;
+import org.junit.jupiter.api.DynamicTest;
+import org.junit.jupiter.api.Order;
+import org.junit.jupiter.api.Test;
+
+import org.junit.jupiter.api.TestFactory;
+
+import org.springframework.test.context.ActiveProfiles;
+
+import org.apache.causeway.viewer.graphql.viewer.test.e2e.Abstract_IntegTest;
+
+
+//NOT USING @Transactional since we are running server within same transaction otherwise
+@Order(30)
+@ActiveProfiles("test")
+public class Calculator_IntegTest extends Abstract_IntegTest {
+
+ @TestFactory
+ Iterable<DynamicTest> each() throws IOException, URISyntaxException {
+
+ val integClassName = getClass().getSimpleName();
+ val classUrl = getClass().getResource(integClassName + ".class");
+ Path classPath = Paths.get(classUrl.toURI());
+ Path directoryPath = classPath.getParent();
+
+ return Files.walk(directoryPath)
+ .filter(Files::isRegularFile)
+ .filter(file -> {
+ String fileName = file.getFileName().toString();
+ return fileName.startsWith(integClassName) && fileName.endsWith("._.gql");
+ })
+ .map(file -> {
+ String fileName = file.getFileName().toString();
+ String testName = fileName.substring(integClassName.length() + ".each.".length()).replace("._.gql", "");
+ return JupiterApprovals.dynamicTest(
+ testName,
+ options -> {
+ Approvals.verify(submitFileNamed(fileName), jsonOptions(options));
+ afterEach();
+ beforeEach();
+ });
+ })
+ .collect(Collectors.toList());
+ }
+
+}
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/DepartmentMutating_IntegTest.change_department_name_visibility._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/DepartmentMutating_IntegTest.change_department_name_visibility._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/DepartmentMutating_IntegTest.change_department_name_visibility._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/DepartmentMutating_IntegTest.change_department_name_visibility._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/DepartmentMutating_IntegTest.change_department_name_visibility.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/DepartmentMutating_IntegTest.change_department_name_visibility.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/DepartmentMutating_IntegTest.change_department_name_visibility.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/DepartmentMutating_IntegTest.change_department_name_visibility.approved.json
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/DepartmentMutating_IntegTest.java b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/DepartmentMutating_IntegTest.java
similarity index 96%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/DepartmentMutating_IntegTest.java
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/DepartmentMutating_IntegTest.java
index 8e08aa42a1..7a21171d2c 100644
--- a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/DepartmentMutating_IntegTest.java
+++ b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/DepartmentMutating_IntegTest.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.causeway.viewer.graphql.viewer.test.e2e.queryandmutations;
+package org.apache.causeway.viewer.graphql.viewer.test.e2e;
import java.util.Optional;
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.create_department._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.create_department._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.create_department._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.create_department._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.create_department.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.create_department.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.create_department.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.create_department.approved.json
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.create_department_name_param_disabled._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.create_department_name_param_disabled._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.create_department_name_param_disabled._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.create_department_name_param_disabled._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.create_department_name_param_disabled.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.create_department_name_param_disabled.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.create_department_name_param_disabled.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.create_department_name_param_disabled.approved.json
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.find_all_departments._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_all_departments._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.find_all_departments._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_all_departments._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.find_all_departments.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_all_departments.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.find_all_departments.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_all_departments.approved.json
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.find_department_and_add_staff_member_choices._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_add_staff_member_choices._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.find_department_and_add_staff_member_choices._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_add_staff_member_choices._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.find_department_and_add_staff_member_choices.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_add_staff_member_choices.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.find_department_and_add_staff_member_choices.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_add_staff_member_choices.approved.json
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.find_department_and_add_staff_members._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_add_staff_members._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.find_department_and_add_staff_members._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_add_staff_members._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.find_department_and_add_staff_members.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_add_staff_members.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.find_department_and_add_staff_members.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_add_staff_members.approved.json
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.find_department_and_change_head_autocomplete._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_change_head_autocomplete._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.find_department_and_change_head_autocomplete._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_change_head_autocomplete._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.find_department_and_change_head_autocomplete.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_change_head_autocomplete.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.find_department_and_change_head_autocomplete.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_change_head_autocomplete.approved.json
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.find_department_and_change_head_default._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_change_head_default._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.find_department_and_change_head_default._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_change_head_default._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.find_department_and_change_head_default.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_change_head_default.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.find_department_and_change_head_default.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_change_head_default.approved.json
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.find_department_and_change_name_invalid._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_change_name_invalid._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.find_department_and_change_name_invalid._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_change_name_invalid._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.find_department_and_change_name_invalid.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_change_name_invalid.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.find_department_and_change_name_invalid.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_change_name_invalid.approved.json
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.find_department_and_edit_head_autocomplete._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_edit_head_autocomplete._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.find_department_and_edit_head_autocomplete._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_edit_head_autocomplete._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.find_department_and_edit_head_autocomplete.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_edit_head_autocomplete.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.find_department_and_edit_head_autocomplete.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_edit_head_autocomplete.approved.json
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.find_department_and_edit_head_autocomplete_none_matching._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_edit_head_autocomplete_none_matching._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.find_department_and_edit_head_autocomplete_none_matching._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_edit_head_autocomplete_none_matching._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.find_department_and_edit_head_autocomplete_none_matching.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_edit_head_autocomplete_none_matching.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.find_department_and_edit_head_autocomplete_none_matching.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_edit_head_autocomplete_none_matching.approved.json
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.find_department_and_list_its_staff._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_list_its_staff._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.find_department_and_list_its_staff._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_list_its_staff._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.find_department_and_list_its_staff.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_list_its_staff.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.find_department_and_list_its_staff.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_list_its_staff.approved.json
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.find_department_and_remove_staff_member_choices._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_remove_staff_member_choices._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.find_department_and_remove_staff_member_choices._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_remove_staff_member_choices._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.find_department_and_remove_staff_member_choices.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_remove_staff_member_choices.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.find_department_and_remove_staff_member_choices.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_remove_staff_member_choices.approved.json
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.find_department_by_name._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_by_name._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.find_department_by_name._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_by_name._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.find_department_by_name.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_by_name.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.find_department_by_name.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_by_name.approved.json
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/scenario/Department_IntegTest.find_department_and_change_name._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.scenario_find_department_and_change_name._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/scenario/Department_IntegTest.find_department_and_change_name._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.scenario_find_department_and_change_name._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/scenario/Department_IntegTest.find_department_and_change_name.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.scenario_find_department_and_change_name.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/scenario/Department_IntegTest.find_department_and_change_name.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.scenario_find_department_and_change_name.approved.json
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
new file mode 100644
index 0000000000..32e9e571c1
--- /dev/null
+++ b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.java
@@ -0,0 +1,84 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.causeway.viewer.graphql.viewer.test.e2e;
+
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import org.approvaltests.Approvals;
+import org.approvaltests.integrations.junit5.JupiterApprovals;
+import org.approvaltests.reporters.DiffReporter;
+import org.approvaltests.reporters.UseReporter;
+import org.junit.jupiter.api.DynamicTest;
+import org.junit.jupiter.api.Order;
+import org.junit.jupiter.api.Test;
+
+import static org.assertj.core.api.AssertionsForInterfaceTypes.assertThat;
+
+import org.junit.jupiter.api.TestFactory;
+
+import org.springframework.test.context.ActiveProfiles;
+import org.springframework.transaction.annotation.Propagation;
+
+import org.apache.causeway.viewer.graphql.viewer.test.domain.dept.Department;
+import org.apache.causeway.viewer.graphql.viewer.test.domain.dept.DeptHead;
+import org.apache.causeway.viewer.graphql.viewer.test.e2e.Abstract_IntegTest;
+
+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 {
+
+ @TestFactory
+ Iterable<DynamicTest> each() throws IOException, URISyntaxException {
+
+ val integClassName = getClass().getSimpleName();
+ val classUrl = getClass().getResource(integClassName + ".class");
+ Path classPath = Paths.get(classUrl.toURI());
+ Path directoryPath = classPath.getParent();
+
+ return Files.walk(directoryPath)
+ .filter(Files::isRegularFile)
+ .filter(file -> {
+ String fileName = file.getFileName().toString();
+ return fileName.startsWith(integClassName) && fileName.endsWith("._.gql");
+ })
+ .map(file -> {
+ String fileName = file.getFileName().toString();
+ String testName = fileName.substring(integClassName.length() + ".each.".length()).replace("._.gql", "");
+ return JupiterApprovals.dynamicTest(
+ testName,
+ options -> {
+ Approvals.verify(submitFileNamed(fileName), jsonOptions(options));
+ afterEach();
+ beforeEach();
+ });
+ })
+ .collect(Collectors.toList());
+ }
+
+}
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/DeptHeadMutating_IntegTest.create_department._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/DeptHead_IntegTest.each.create_department._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/DeptHeadMutating_IntegTest.create_department._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/DeptHead_IntegTest.each.create_department._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/DeptHeadMutating_IntegTest.create_department.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/DeptHead_IntegTest.each.create_department.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/DeptHeadMutating_IntegTest.create_department.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/DeptHead_IntegTest.each.create_department.approved.json
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/DeptHead_IntegTest.find_depthead_and_change_name_invalid._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/DeptHead_IntegTest.each.find_depthead_and_change_name_invalid._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/DeptHead_IntegTest.find_depthead_and_change_name_invalid._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/DeptHead_IntegTest.each.find_depthead_and_change_name_invalid._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/DeptHead_IntegTest.find_depthead_and_change_name_invalid.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/DeptHead_IntegTest.each.find_depthead_and_change_name_invalid.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/DeptHead_IntegTest.find_depthead_and_change_name_invalid.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/DeptHead_IntegTest.each.find_depthead_and_change_name_invalid.approved.json
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/DeptHead_IntegTest.find_depthead_and_change_name_invoke_invalid._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/DeptHead_IntegTest.each.find_depthead_and_change_name_invoke_invalid._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/DeptHead_IntegTest.find_depthead_and_change_name_invoke_invalid._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/DeptHead_IntegTest.each.find_depthead_and_change_name_invoke_invalid._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/DeptHead_IntegTest.find_depthead_and_change_name_invoke_invalid.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/DeptHead_IntegTest.each.find_depthead_and_change_name_invoke_invalid.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/DeptHead_IntegTest.find_depthead_and_change_name_invoke_invalid.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/DeptHead_IntegTest.each.find_depthead_and_change_name_invoke_invalid.approved.json
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/DeptHead_IntegTest.find_depthead_by_name._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/DeptHead_IntegTest.each.find_depthead_by_name._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/DeptHead_IntegTest.find_depthead_by_name._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/DeptHead_IntegTest.each.find_depthead_by_name._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/DeptHead_IntegTest.find_depthead_by_name.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/DeptHead_IntegTest.each.find_depthead_by_name.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/DeptHead_IntegTest.find_depthead_by_name.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/DeptHead_IntegTest.each.find_depthead_by_name.approved.json
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
new file mode 100644
index 0000000000..b8a8952515
--- /dev/null
+++ b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/DeptHead_IntegTest.java
@@ -0,0 +1,82 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.causeway.viewer.graphql.viewer.test.e2e;
+
+import lombok.val;
+
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.stream.Collectors;
+
+import org.approvaltests.Approvals;
+import org.approvaltests.integrations.junit5.JupiterApprovals;
+import org.approvaltests.reporters.DiffReporter;
+import org.approvaltests.reporters.UseReporter;
+import org.junit.jupiter.api.DynamicTest;
+import org.junit.jupiter.api.Order;
+import org.junit.jupiter.api.Test;
+
+import static org.assertj.core.api.AssertionsForInterfaceTypes.assertThat;
+
+import org.junit.jupiter.api.TestFactory;
+
+import org.springframework.test.context.ActiveProfiles;
+import org.springframework.transaction.annotation.Propagation;
+
+import org.apache.causeway.viewer.graphql.viewer.test.domain.dept.DeptHead;
+import org.apache.causeway.viewer.graphql.viewer.test.e2e.Abstract_IntegTest;
+
+
+//NOT USING @Transactional since we are running server within same transaction otherwise
+@Order(50)
+@ActiveProfiles("test")
+public class DeptHead_IntegTest extends Abstract_IntegTest {
+
+ @TestFactory
+ Iterable<DynamicTest> each() throws IOException, URISyntaxException {
+
+ val integClassName = getClass().getSimpleName();
+ val classUrl = getClass().getResource(integClassName + ".class");
+ Path classPath = Paths.get(classUrl.toURI());
+ Path directoryPath = classPath.getParent();
+
+ return Files.walk(directoryPath)
+ .filter(Files::isRegularFile)
+ .filter(file -> {
+ String fileName = file.getFileName().toString();
+ return fileName.startsWith(integClassName) && fileName.endsWith("._.gql");
+ })
+ .map(file -> {
+ String fileName = file.getFileName().toString();
+ String testName = fileName.substring(integClassName.length() + ".each.".length()).replace("._.gql", "");
+ return JupiterApprovals.dynamicTest(
+ testName,
+ options -> {
+ Approvals.verify(submitFileNamed(fileName), jsonOptions(options));
+ afterEach();
+ beforeEach();
+ });
+ })
+ .collect(Collectors.toList());
+ }
+
+}
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/StaffMutating_IntegTest.java b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/StaffMutating_IntegTest.java
similarity index 96%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/StaffMutating_IntegTest.java
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/StaffMutating_IntegTest.java
index 4a594ab762..962c404395 100644
--- a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/StaffMutating_IntegTest.java
+++ b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/StaffMutating_IntegTest.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.causeway.viewer.graphql.viewer.test.e2e.queryandmutations;
+package org.apache.causeway.viewer.graphql.viewer.test.e2e;
import org.approvaltests.Approvals;
import org.approvaltests.reporters.DiffReporter;
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/StaffMutating_IntegTest.staff_member_edit_name._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/StaffMutating_IntegTest.staff_member_edit_name._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/StaffMutating_IntegTest.staff_member_edit_name._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/StaffMutating_IntegTest.staff_member_edit_name._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/StaffMutating_IntegTest.staff_member_edit_name.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/StaffMutating_IntegTest.staff_member_edit_name.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/StaffMutating_IntegTest.staff_member_edit_name.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/StaffMutating_IntegTest.staff_member_edit_name.approved.json
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Staff_IntegTest.create_staff_member_with_department._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Staff_IntegTest.each.create_staff_member_with_department._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Staff_IntegTest.create_staff_member_with_department._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Staff_IntegTest.each.create_staff_member_with_department._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Staff_IntegTest.create_staff_member_with_department.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Staff_IntegTest.each.create_staff_member_with_department.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Staff_IntegTest.create_staff_member_with_department.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Staff_IntegTest.each.create_staff_member_with_department.approved.json
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Staff_IntegTest.find_staff_member_by_name_and_edit._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Staff_IntegTest.each.find_staff_member_by_name_and_edit._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Staff_IntegTest.find_staff_member_by_name_and_edit._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Staff_IntegTest.each.find_staff_member_by_name_and_edit._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Staff_IntegTest.find_staff_member_by_name_and_edit.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Staff_IntegTest.each.find_staff_member_by_name_and_edit.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Staff_IntegTest.find_staff_member_by_name_and_edit.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Staff_IntegTest.each.find_staff_member_by_name_and_edit.approved.json
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Staff_IntegTest.find_staff_member_by_name_and_edit_grade_choices._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Staff_IntegTest.each.find_staff_member_by_name_and_edit_grade_choices._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Staff_IntegTest.find_staff_member_by_name_and_edit_grade_choices._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Staff_IntegTest.each.find_staff_member_by_name_and_edit_grade_choices._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Staff_IntegTest.find_staff_member_by_name_and_edit_grade_choices.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Staff_IntegTest.each.find_staff_member_by_name_and_edit_grade_choices.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Staff_IntegTest.find_staff_member_by_name_and_edit_grade_choices.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Staff_IntegTest.each.find_staff_member_by_name_and_edit_grade_choices.approved.json
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Staff_IntegTest.list_all_staff_members._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Staff_IntegTest.each.list_all_staff_members._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Staff_IntegTest.list_all_staff_members._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Staff_IntegTest.each.list_all_staff_members._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Staff_IntegTest.list_all_staff_members.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Staff_IntegTest.each.list_all_staff_members.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Staff_IntegTest.list_all_staff_members.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Staff_IntegTest.each.list_all_staff_members.approved.json
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Staff_IntegTest.staff_member_name_edit_invalid._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Staff_IntegTest.each.staff_member_name_edit_invalid._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Staff_IntegTest.staff_member_name_edit_invalid._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Staff_IntegTest.each.staff_member_name_edit_invalid._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Staff_IntegTest.staff_member_name_edit_invalid.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Staff_IntegTest.each.staff_member_name_edit_invalid.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Staff_IntegTest.staff_member_name_edit_invalid.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Staff_IntegTest.each.staff_member_name_edit_invalid.approved.json
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Staff_IntegTest.staff_member_name_validate._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Staff_IntegTest.each.staff_member_name_validate._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Staff_IntegTest.staff_member_name_validate._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Staff_IntegTest.each.staff_member_name_validate._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Staff_IntegTest.staff_member_name_validate.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Staff_IntegTest.each.staff_member_name_validate.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Staff_IntegTest.staff_member_name_validate.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Staff_IntegTest.each.staff_member_name_validate.approved.json
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
new file mode 100644
index 0000000000..86b8037408
--- /dev/null
+++ b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Staff_IntegTest.java
@@ -0,0 +1,93 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.causeway.viewer.graphql.viewer.test.e2e;
+
+import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.http.HttpClient;
+import java.net.http.HttpRequest;
+import java.net.http.HttpResponse;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.Optional;
+import java.util.stream.Collectors;
+
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+import org.approvaltests.Approvals;
+import org.approvaltests.integrations.junit5.JupiterApprovals;
+import org.approvaltests.reporters.DiffReporter;
+import org.approvaltests.reporters.UseReporter;
+import org.junit.jupiter.api.DynamicTest;
+import org.junit.jupiter.api.Order;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestFactory;
+import org.junit.jupiter.api.condition.DisabledIfEnvironmentVariable;
+
+import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
+import static org.assertj.core.api.AssertionsForInterfaceTypes.assertThat;
+
+import org.springframework.test.context.ActiveProfiles;
+import org.springframework.transaction.annotation.Propagation;
+
+import org.apache.causeway.applib.services.bookmark.Bookmark;
+import org.apache.causeway.viewer.graphql.viewer.test.domain.dept.StaffMember;
+import org.apache.causeway.viewer.graphql.viewer.test.e2e.Abstract_IntegTest;
+
+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 {
+
+ @TestFactory
+ Iterable<DynamicTest> each() throws IOException, URISyntaxException {
+
+ val integClassName = getClass().getSimpleName();
+ val classUrl = getClass().getResource(integClassName + ".class");
+ Path classPath = Paths.get(classUrl.toURI());
+ Path directoryPath = classPath.getParent();
+
+ return Files.walk(directoryPath)
+ .filter(Files::isRegularFile)
+ .filter(file -> {
+ String fileName = file.getFileName().toString();
+ return fileName.startsWith(integClassName) && fileName.endsWith("._.gql");
+ })
+ .map(file -> {
+ String fileName = file.getFileName().toString();
+ String testName = fileName.substring(integClassName.length() + ".each.".length()).replace("._.gql", "");
+ return JupiterApprovals.dynamicTest(
+ testName,
+ options -> {
+ Approvals.verify(submitFileNamed(fileName), jsonOptions(options));
+ afterEach();
+ beforeEach();
+ });
+ })
+ .collect(Collectors.toList());
+ }
+
+
+}
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Admin_IntegTest.java b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Admin_IntegTest.java
deleted file mode 100644
index bc12c60fde..0000000000
--- a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Admin_IntegTest.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.causeway.viewer.graphql.viewer.test.e2e.queryandmutations;
-
-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;
-
-import org.apache.causeway.viewer.graphql.viewer.test.e2e.Abstract_IntegTest;
-
-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 {
-
- @Test
- @UseReporter(DiffReporter.class)
- void admin_action() throws Exception {
-
- // when
- val response = submit();
-
- // then payload
- Approvals.verify(response, jsonOptions());
- }
-
- @Test
- @UseReporter(DiffReporter.class)
- void action_with_disabled_param() throws Exception {
-
- // when
- val response = submit();
-
- // then payload
- Approvals.verify(response, jsonOptions());
- }
-
- @Test
- @UseReporter(DiffReporter.class)
- void action_with_hidden_param() throws Exception {
-
- // when
- val response = submit();
-
- // then payload
- Approvals.verify(response, jsonOptions());
- }
-
- @Test
- @UseReporter(DiffReporter.class)
- void other_admin_action() throws Exception {
-
- // when
- val response = submit();
-
- // then payload
- Approvals.verify(response, jsonOptions());
- }
-
-
-}
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.java b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.java
deleted file mode 100644
index 24b72688ab..0000000000
--- a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Calculator_IntegTest.java
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.causeway.viewer.graphql.viewer.test.e2e.queryandmutations;
-
-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;
-
-import org.apache.causeway.viewer.graphql.viewer.test.e2e.Abstract_IntegTest;
-
-
-//NOT USING @Transactional since we are running server within same transaction otherwise
-@Order(30)
-@ActiveProfiles("test")
-public class Calculator_IntegTest extends Abstract_IntegTest {
-
- @Test
- @UseReporter(DiffReporter.class)
- void add_integers() throws Exception {
-
- // when, then
- Approvals.verify(submit(), jsonOptions());
- }
-
- @Test
- @UseReporter(DiffReporter.class)
- void add_integer_wrappers() throws Exception {
-
- // when, then
- Approvals.verify(submit(), jsonOptions());
- }
-
- @Test
- @UseReporter(DiffReporter.class)
- void add_doubles() throws Exception {
-
- // when, then
- Approvals.verify(submit(), jsonOptions());
- }
-
- @Test
- @UseReporter(DiffReporter.class)
- void add_double_wrappers() throws Exception {
-
- // when, then
- Approvals.verify(submit(), jsonOptions());
- }
-
- @Test
- @UseReporter(DiffReporter.class)
- void add_floats() throws Exception {
-
- // when, then
- Approvals.verify(submit(), jsonOptions());
- }
-
- @Test
- @UseReporter(DiffReporter.class)
- void add_float_wrappers() throws Exception {
-
- // when, then
- Approvals.verify(submit(), jsonOptions());
- }
-
- @Test
- @UseReporter(DiffReporter.class)
- void add_big_integers() throws Exception {
-
- // when, then
- Approvals.verify(submit(), jsonOptions());
- }
-
- @Test
- @UseReporter(DiffReporter.class)
- void add_big_decimals() throws Exception {
-
- // when, then
- Approvals.verify(submit(), jsonOptions());
- }
-
- @Test
- @UseReporter(DiffReporter.class)
- void plus_days() throws Exception {
-
- // when, then
- Approvals.verify(submit(), jsonOptions());
- }
-
- @Test
- @UseReporter(DiffReporter.class)
- void plus_joda_days() throws Exception {
-
- // when, then
- Approvals.verify(submit(), jsonOptions());
- }
-
- @Test
- @UseReporter(DiffReporter.class)
- void boolean_and_1() throws Exception {
-
- // when, then
- Approvals.verify(submit(), jsonOptions());
-
- }
-
- @Test
- @UseReporter(DiffReporter.class)
- void boolean_and_2() throws Exception {
-
- // when, then
- Approvals.verify(submit(), jsonOptions());
- }
-
- @Test
- @UseReporter(DiffReporter.class)
- void boolean_or_1() throws Exception {
-
- // when, then
- Approvals.verify(submit(), jsonOptions());
-
- }
-
- @Test
- @UseReporter(DiffReporter.class)
- void boolean_or_2() throws Exception {
-
- // when, then
- Approvals.verify(submit(), jsonOptions());
-
- }
-
- @Test
- @UseReporter(DiffReporter.class)
- void boolean_not() throws Exception {
-
- // when, then
- Approvals.verify(submit(), jsonOptions());
-
- }
-
- @Test
- @UseReporter(DiffReporter.class)
- void next_month() throws Exception {
-
- // when, then
- Approvals.verify(submit(), jsonOptions());
-
- }
-
- @Test
- @UseReporter(DiffReporter.class)
- void concat() throws Exception {
-
- // when, then
- Approvals.verify(submit(), jsonOptions());
-
- }
-
-
-}
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.java b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.java
deleted file mode 100644
index 55e23e5054..0000000000
--- a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Department_IntegTest.java
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.causeway.viewer.graphql.viewer.test.e2e.queryandmutations;
-
-import java.util.List;
-
-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.test.context.ActiveProfiles;
-import org.springframework.transaction.annotation.Propagation;
-
-import org.apache.causeway.viewer.graphql.viewer.test.domain.dept.Department;
-import org.apache.causeway.viewer.graphql.viewer.test.domain.dept.DeptHead;
-import org.apache.causeway.viewer.graphql.viewer.test.e2e.Abstract_IntegTest;
-
-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 {
-
- @Test
- @UseReporter(DiffReporter.class)
- void find_all_departments() throws Exception {
-
- // given
- transactionService.runTransactional(Propagation.REQUIRED, () -> {
-
- departmentRepository.create("foo", null);
- departmentRepository.create("bar", null);
- transactionService.flushTransaction();
-
- List<Department> allDepartment = departmentRepository.findAll();
- assertThat(allDepartment).hasSize(2);
-
- List<DeptHead> allDeptHead = deptHeadRepository.findAll();
- assertThat(allDeptHead).isEmpty();
- });
-
- // when, then
- Approvals.verify(submit(), jsonOptions());
- }
-
- @Test
- @UseReporter(DiffReporter.class)
- void find_department_by_name() throws Exception {
-
- // when, then
- Approvals.verify(submit(), jsonOptions());
- }
-
- @Test
- @UseReporter(DiffReporter.class)
- void find_department_and_change_name_invalid() throws Exception {
-
- // when, then
- Approvals.verify(submit(), jsonOptions());
- }
-
- @Test
- @UseReporter(DiffReporter.class)
- void find_department_and_change_head_default() throws Exception {
-
- // when, then
- Approvals.verify(submit(), jsonOptions());
- }
-
- @Test
- @UseReporter(DiffReporter.class)
- void find_department_and_edit_head_autocomplete() throws Exception {
-
- // when, then
- Approvals.verify(submit(), jsonOptions());
- }
-
- @Test
- @UseReporter(DiffReporter.class)
- void find_department_and_edit_head_autocomplete_none_matching() throws Exception {
-
- // when, then
- Approvals.verify(submit(), jsonOptions());
- }
-
- @Test
- @UseReporter(DiffReporter.class)
- void find_department_and_add_staff_member_choices() throws Exception {
-
- // when, then
- Approvals.verify(submit(), jsonOptions());
-
- }
-
- @Test
- @UseReporter(DiffReporter.class)
- void find_department_and_add_staff_members() throws Exception {
-
- // when, then
- Approvals.verify(submit(), jsonOptions());
-
- }
-
- @Test
- @UseReporter(DiffReporter.class)
- void find_department_and_change_head_autocomplete() throws Exception {
-
- // when, then
- Approvals.verify(submit(), jsonOptions());
- }
-
- @Test
- @UseReporter(DiffReporter.class)
- void create_department() throws Exception {
-
- // given
- final int numDepartmentsInitially =
- transactionService.callTransactional(
- Propagation.REQUIRED,
- () -> departmentRepository.findAll().size()
- ).valueAsNonNullElseFail();
-
- // when
- String newDepartmentName = "newbie";
- val response = submit();
-
- // then payload
- Approvals.verify(response, jsonOptions());
-
- // and also in the database
- final List<Department> allDepartment =
- transactionService.callTransactional(
- Propagation.REQUIRED,
- () -> departmentRepository.findAll()
- ).valueAsNonNullElseFail();
-
- assertThat(allDepartment)
- .hasSize(numDepartmentsInitially + 1)
- .filteredOn(x -> x.getName().equals(newDepartmentName))
- .extracting(Department::getName)
- .first()
- .isEqualTo(newDepartmentName);
-
- final Department newbieDepartment =
- transactionService.callTransactional(
- Propagation.REQUIRED,
- () -> departmentRepository.findByName(newDepartmentName)
- ).valueAsNullableElseFail();
-
- assertThat(newbieDepartment).isNotNull();
- }
-
- @Test
- @UseReporter(DiffReporter.class)
- void create_department_name_param_disabled() throws Exception {
-
- // when
- val response = submit();
-
- // then payload
- Approvals.verify(response, jsonOptions());
- }
-
-
- @Test
- @UseReporter(DiffReporter.class)
- void find_department_and_remove_staff_member_choices() throws Exception {
-
- // when, then
- Approvals.verify(submit(), jsonOptions());
- }
-
- @Test
- @UseReporter(DiffReporter.class)
- void find_department_and_list_its_staff() throws Exception {
-
- // when, then
- Approvals.verify(submit(), jsonOptions());
- }
-
-
-}
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/scenario/Calculator_IntegTest.java b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/scenario/Calculator_IntegTest.java
deleted file mode 100644
index bb57a593f8..0000000000
--- a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/scenario/Calculator_IntegTest.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.causeway.viewer.graphql.viewer.test.e2e.scenario;
-
-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;
-
-import org.apache.causeway.viewer.graphql.viewer.test.e2e.Abstract_IntegTest;
-
-
-//NOT USING @Transactional since we are running server within same transaction otherwise
-@Order(30)
-@ActiveProfiles("test")
-public class Calculator_IntegTest extends Abstract_IntegTest {
-
-
- @Test
- @UseReporter(DiffReporter.class)
- void concat() throws Exception {
-
- // when, then
- Approvals.verify(submit(), jsonOptions());
-
- }
-
-
-}
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/scenario/Department_IntegTest.java b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/scenario/Department_IntegTest.java
deleted file mode 100644
index 82d253d988..0000000000
--- a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/scenario/Department_IntegTest.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.causeway.viewer.graphql.viewer.test.e2e.scenario;
-
-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;
-
-import org.apache.causeway.viewer.graphql.viewer.test.e2e.Abstract_IntegTest;
-
-
-//NOT USING @Transactional since we are running server within same transaction otherwise
-@Order(40)
-@ActiveProfiles("test")
-public class Department_IntegTest extends Abstract_IntegTest {
-
- @Test
- @UseReporter(DiffReporter.class)
- void find_department_and_change_name() throws Exception {
-
- // when, then
- Approvals.verify(submit(), jsonOptions());
- }
-
-
-}
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/DeptHeadMutating_IntegTest.change_department_name._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/special/DeptHeadMutating_IntegTest.change_department_name._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/DeptHeadMutating_IntegTest.change_department_name._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/special/DeptHeadMutating_IntegTest.change_department_name._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/DeptHeadMutating_IntegTest.change_department_name.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/special/DeptHeadMutating_IntegTest.change_department_name.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/DeptHeadMutating_IntegTest.change_department_name.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/special/DeptHeadMutating_IntegTest.change_department_name.approved.json
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/DeptHeadMutating_IntegTest.java b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/special/DeptHeadMutating_IntegTest.java
similarity index 86%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/DeptHeadMutating_IntegTest.java
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/special/DeptHeadMutating_IntegTest.java
index 46799d4b15..abd2185aa5 100644
--- a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/DeptHeadMutating_IntegTest.java
+++ b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/special/DeptHeadMutating_IntegTest.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.causeway.viewer.graphql.viewer.test.e2e.queryandmutations;
+package org.apache.causeway.viewer.graphql.viewer.test.e2e.special;
import java.util.Optional;
@@ -42,18 +42,6 @@ import lombok.val;
@ActiveProfiles("test")
public class DeptHeadMutating_IntegTest extends Abstract_IntegTest {
- @Test
- @UseReporter(DiffReporter.class)
- void create_department() throws Exception {
-
- // when lookup 'Prof. Dicky Horwich' and change it to 'Prof. Richard Horwich'
- String response = submit();
-
- // then payload
- Approvals.verify(response, jsonOptions());
-
- }
-
@Test
@UseReporter(DiffReporter.class)
void change_department_name() throws Exception {
@@ -72,6 +60,6 @@ public class DeptHeadMutating_IntegTest extends Abstract_IntegTest {
// then payload
Approvals.verify(response, jsonOptions());
- }
+ }
}
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/DeptHead_IntegTest.find_depthead_and_change_name._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/special/DeptHead_2_IntegTest.find_depthead_and_change_name._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/DeptHead_IntegTest.find_depthead_and_change_name._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/special/DeptHead_2_IntegTest.find_depthead_and_change_name._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/DeptHead_IntegTest.find_depthead_and_change_name.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/special/DeptHead_2_IntegTest.find_depthead_and_change_name.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/DeptHead_IntegTest.find_depthead_and_change_name.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/special/DeptHead_2_IntegTest.find_depthead_and_change_name.approved.json
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/DeptHead_IntegTest.java b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/special/DeptHead_2_IntegTest.java
similarity index 73%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/DeptHead_IntegTest.java
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/special/DeptHead_2_IntegTest.java
index 8cc2cd5ff3..4d9aaa2830 100644
--- a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/DeptHead_IntegTest.java
+++ b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/special/DeptHead_2_IntegTest.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.causeway.viewer.graphql.viewer.test.e2e.queryandmutations;
+package org.apache.causeway.viewer.graphql.viewer.test.e2e.special;
import org.approvaltests.Approvals;
import org.approvaltests.reporters.DiffReporter;
@@ -36,33 +36,7 @@ import org.apache.causeway.viewer.graphql.viewer.test.e2e.Abstract_IntegTest;
//NOT USING @Transactional since we are running server within same transaction otherwise
@Order(50)
@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 DeptHead_2_IntegTest extends Abstract_IntegTest {
@Test
@UseReporter(DiffReporter.class)
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Staff_IntegTest.find_staff_member_by_name_and_download_photo._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/special/Staff_2_IntegTest.find_staff_member_by_name_and_download_photo._.gql
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Staff_IntegTest.find_staff_member_by_name_and_download_photo._.gql
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/special/Staff_2_IntegTest.find_staff_member_by_name_and_download_photo._.gql
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Staff_IntegTest.find_staff_member_by_name_and_download_photo.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/special/Staff_2_IntegTest.find_staff_member_by_name_and_download_photo.approved.json
similarity index 100%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Staff_IntegTest.find_staff_member_by_name_and_download_photo.approved.json
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/special/Staff_2_IntegTest.find_staff_member_by_name_and_download_photo.approved.json
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Staff_IntegTest.java b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/special/Staff_2_IntegTest.java
similarity index 62%
rename from viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Staff_IntegTest.java
rename to viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/special/Staff_2_IntegTest.java
index f992595a07..bfb905b8e7 100644
--- a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/queryandmutations/Staff_IntegTest.java
+++ b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/special/Staff_2_IntegTest.java
@@ -16,16 +16,14 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.causeway.viewer.graphql.viewer.test.e2e.queryandmutations;
+package org.apache.causeway.viewer.graphql.viewer.test.e2e.special;
import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
-import java.util.Optional;
-import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.approvaltests.Approvals;
@@ -33,16 +31,11 @@ import org.approvaltests.reporters.DiffReporter;
import org.approvaltests.reporters.UseReporter;
import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.condition.DisabledIfEnvironmentVariable;
import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
-import static org.assertj.core.api.AssertionsForInterfaceTypes.assertThat;
import org.springframework.test.context.ActiveProfiles;
-import org.springframework.transaction.annotation.Propagation;
-import org.apache.causeway.applib.services.bookmark.Bookmark;
-import org.apache.causeway.viewer.graphql.viewer.test.domain.dept.StaffMember;
import org.apache.causeway.viewer.graphql.viewer.test.e2e.Abstract_IntegTest;
import lombok.val;
@@ -51,77 +44,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 {
-
- @Test
- @UseReporter(DiffReporter.class)
- void list_all_staff_members() throws Exception {
-
- // when, then
- Approvals.verify(submit(), jsonOptions());
- }
-
- @Test
- @UseReporter(DiffReporter.class)
- void find_staff_member_by_name_and_edit_grade_choices() throws Exception {
-
- // when, then
- Approvals.verify(submit(), jsonOptions());
- }
-
- @Test
- @UseReporter(DiffReporter.class)
- void find_staff_member_by_name_and_edit() throws Exception {
-
- // given
- final Optional<Bookmark> bookmarkIfAny =
- transactionService.callTransactional(
- Propagation.REQUIRED,
- () -> {
- StaffMember pojo = staffMemberRepository.findByName("Gerry Jones");
- return bookmarkService.bookmarkFor(pojo);
- }
- ).valueAsNullableElseFail();
-
- assertThat(bookmarkIfAny).isPresent();
-
- // when, then
- Approvals.verify(submit(), jsonOptions());
-
- // and in the database...
- final Optional<StaffMember> staffMemberIfAny =
- transactionService.callTransactional(
- Propagation.REQUIRED,
- () -> bookmarkService.lookup(bookmarkIfAny.get(), StaffMember.class)
- ).valueAsNullableElseFail();
-
- assertThat(staffMemberIfAny).isPresent();
- assertThat(staffMemberIfAny.get()).extracting(StaffMember::getName).isEqualTo("Gerald Johns");
- }
-
- @Test
- @UseReporter(DiffReporter.class)
- void staff_member_name_validate() throws Exception {
-
- // when, then
- Approvals.verify(submit(), jsonOptions());
- }
-
- @Test
- @UseReporter(DiffReporter.class)
- void staff_member_name_edit_invalid() throws Exception {
-
- // when, then
- Approvals.verify(submit(), jsonOptions());
- }
-
- @Test
- @UseReporter(DiffReporter.class)
- void create_staff_member_with_department() throws Exception {
-
- Approvals.verify(submit(), jsonOptions());
-
- }
+public class Staff_2_IntegTest extends Abstract_IntegTest {
@Test
@UseReporter(DiffReporter.class)
diff --git a/viewers/graphql/test/src/test/resources/schema.gql b/viewers/graphql/test/src/test/resources/schema.gql
index ad5e32ac20..a6b68304bb 100644
--- a/viewers/graphql/test/src/test/resources/schema.gql
+++ b/viewers/graphql/test/src/test/resources/schema.gql
@@ -1876,7 +1876,9 @@ type university_calc_Calculator {
not: university_calc_Calculator__not__gqlv_action
or: university_calc_Calculator__or__gqlv_action
plusDays: university_calc_Calculator__plusDays__gqlv_action
+ plusDaysAndHoursAndMinutes: university_calc_Calculator__plusDaysAndHoursAndMinutes__gqlv_action
plusJodaDays: university_calc_Calculator__plusJodaDays__gqlv_action
+ plusJodaDaysAndHoursAndMinutes: university_calc_Calculator__plusJodaDaysAndHoursAndMinutes__gqlv_action
}
type university_calc_Calculator__addBigDecimals__gqlv_action {
@@ -2152,9 +2154,9 @@ type university_calc_Calculator__addIntegers__y__gqlv_action_parameter {
type university_calc_Calculator__addShortWrappers__gqlv_action {
disabled: String
hidden: Boolean
- invoke(x: Int!, y: Int): Int
+ invoke(x: Short!, y: Short): Short
params: university_calc_Calculator__addShortWrappers__gqlv_action_params
- validate(x: Int, y: Int): String
+ validate(x: Short, y: Short): String
}
type university_calc_Calculator__addShortWrappers__gqlv_action_params {
@@ -2164,24 +2166,24 @@ type university_calc_Calculator__addShortWrappers__gqlv_action_params {
type university_calc_Calculator__addShortWrappers__x__gqlv_action_parameter {
datatype: String
- disabled(x: Int): String
+ disabled(x: Short): String
hidden: Boolean
validity: String
}
type university_calc_Calculator__addShortWrappers__y__gqlv_action_parameter {
datatype: String
- disabled(x: Int, y: Int): String
- hidden(x: Int): Boolean
+ disabled(x: Short, y: Short): String
+ hidden(x: Short): Boolean
validity: String
}
type university_calc_Calculator__addShorts__gqlv_action {
disabled: String
hidden: Boolean
- invoke(x: Int!, y: Int!): Int
+ invoke(x: Short!, y: Short!): Short
params: university_calc_Calculator__addShorts__gqlv_action_params
- validate(x: Int, y: Int): String
+ validate(x: Short, y: Short): String
}
type university_calc_Calculator__addShorts__gqlv_action_params {
@@ -2191,15 +2193,15 @@ type university_calc_Calculator__addShorts__gqlv_action_params {
type university_calc_Calculator__addShorts__x__gqlv_action_parameter {
datatype: String
- disabled(x: Int): String
+ disabled(x: Short): String
hidden: Boolean
validity: String
}
type university_calc_Calculator__addShorts__y__gqlv_action_parameter {
datatype: String
- disabled(x: Int, y: Int): String
- hidden(x: Int): Boolean
+ disabled(x: Short, y: Short): String
+ hidden(x: Short): Boolean
validity: String
}
@@ -2323,9 +2325,52 @@ type university_calc_Calculator__or__y__gqlv_action_parameter {
validity: String
}
+type university_calc_Calculator__plusDaysAndHoursAndMinutes__dateTime__gqlv_action_parameter {
+ datatype: String
+ disabled(dateTime: String): String
+ hidden: Boolean
+ validity: String
+}
+
+type university_calc_Calculator__plusDaysAndHoursAndMinutes__gqlv_action {
+ disabled: String
+ hidden: Boolean
+ invoke(dateTime: String!, numDays: Int!, numHours: Int!, numMinutes: Int!): String
+ params: university_calc_Calculator__plusDaysAndHoursAndMinutes__gqlv_action_params
+ validate(dateTime: String, numDays: Int, numHours: Int, numMinutes: Int): String
+}
+
+type university_calc_Calculator__plusDaysAndHoursAndMinutes__gqlv_action_params {
+ dateTime: university_calc_Calculator__plusDaysAndHoursAndMinutes__dateTime__gqlv_action_parameter
+ numDays: university_calc_Calculator__plusDaysAndHoursAndMinutes__numDays__gqlv_action_parameter
+ numHours: university_calc_Calculator__plusDaysAndHoursAndMinutes__numHours__gqlv_action_parameter
+ numMinutes: university_calc_Calculator__plusDaysAndHoursAndMinutes__numMinutes__gqlv_action_parameter
+}
+
+type university_calc_Calculator__plusDaysAndHoursAndMinutes__numDays__gqlv_action_parameter {
+ datatype: String
+ disabled(dateTime: String, numDays: Int): String
+ hidden(dateTime: String): Boolean
+ validity: String
+}
+
+type university_calc_Calculator__plusDaysAndHoursAndMinutes__numHours__gqlv_action_parameter {
+ datatype: String
+ disabled(dateTime: String, numDays: Int, numHours: Int): String
+ hidden(dateTime: String, numDays: Int): Boolean
+ validity: String
+}
+
+type university_calc_Calculator__plusDaysAndHoursAndMinutes__numMinutes__gqlv_action_parameter {
+ datatype: String
+ disabled(dateTime: String, numDays: Int, numHours: Int, numMinutes: Int): String
+ hidden(dateTime: String, numDays: Int, numHours: Int): Boolean
+ validity: String
+}
+
type university_calc_Calculator__plusDays__date__gqlv_action_parameter {
datatype: String
- disabled(date: String): String
+ disabled(date: Date): String
hidden: Boolean
validity: String
}
@@ -2333,9 +2378,9 @@ type university_calc_Calculator__plusDays__date__gqlv_action_parameter {
type university_calc_Calculator__plusDays__gqlv_action {
disabled: String
hidden: Boolean
- invoke(date: String!, numDays: Int!): String
+ invoke(date: Date!, numDays: Int!): Date
params: university_calc_Calculator__plusDays__gqlv_action_params
- validate(date: String, numDays: Int): String
+ validate(date: Date, numDays: Int): String
}
type university_calc_Calculator__plusDays__gqlv_action_params {
@@ -2345,8 +2390,51 @@ type university_calc_Calculator__plusDays__gqlv_action_params {
type university_calc_Calculator__plusDays__numDays__gqlv_action_parameter {
datatype: String
- disabled(date: String, numDays: Int): String
- hidden(date: String): Boolean
+ disabled(date: Date, numDays: Int): String
+ hidden(date: Date): Boolean
+ validity: String
+}
+
+type university_calc_Calculator__plusJodaDaysAndHoursAndMinutes__dateTime__gqlv_action_parameter {
+ datatype: String
+ disabled(dateTime: String): String
+ hidden: Boolean
+ validity: String
+}
+
+type university_calc_Calculator__plusJodaDaysAndHoursAndMinutes__gqlv_action {
+ disabled: String
+ hidden: Boolean
+ invoke(dateTime: String!, numDays: Int!, numHours: Int!, numMinutes: Int!): String
+ params: university_calc_Calculator__plusJodaDaysAndHoursAndMinutes__gqlv_action_params
+ validate(dateTime: String, numDays: Int, numHours: Int, numMinutes: Int): String
+}
+
+type university_calc_Calculator__plusJodaDaysAndHoursAndMinutes__gqlv_action_params {
+ dateTime: university_calc_Calculator__plusJodaDaysAndHoursAndMinutes__dateTime__gqlv_action_parameter
+ numDays: university_calc_Calculator__plusJodaDaysAndHoursAndMinutes__numDays__gqlv_action_parameter
+ numHours: university_calc_Calculator__plusJodaDaysAndHoursAndMinutes__numHours__gqlv_action_parameter
+ numMinutes: university_calc_Calculator__plusJodaDaysAndHoursAndMinutes__numMinutes__gqlv_action_parameter
+}
+
+type university_calc_Calculator__plusJodaDaysAndHoursAndMinutes__numDays__gqlv_action_parameter {
+ datatype: String
+ disabled(dateTime: String, numDays: Int): String
+ hidden(dateTime: String): Boolean
+ validity: String
+}
+
+type university_calc_Calculator__plusJodaDaysAndHoursAndMinutes__numHours__gqlv_action_parameter {
+ datatype: String
+ disabled(dateTime: String, numDays: Int, numHours: Int): String
+ hidden(dateTime: String, numDays: Int): Boolean
+ validity: String
+}
+
+type university_calc_Calculator__plusJodaDaysAndHoursAndMinutes__numMinutes__gqlv_action_parameter {
+ datatype: String
+ disabled(dateTime: String, numDays: Int, numHours: Int, numMinutes: Int): String
+ hidden(dateTime: String, numDays: Int, numHours: Int): Boolean
validity: String
}
@@ -2882,6 +2970,12 @@ enum org_apache_causeway_viewer_graphql_viewer_test_domain_dept_Grade__gqlv_enum
SENIOR_LECTURER
}
+"An RFC-3339 compliant Full Date Scalar"
+scalar Date
+
+"A 16-bit signed integer"
+scalar Short
+
input causeway_applib_DomainObjectList__gqlv_input {
id: ID
ref: String