You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@causeway.apache.org by da...@apache.org on 2024/01/26 10:14:24 UTC

(causeway) branch CAUSEWAY-3676 updated (183f9fecd9 -> 293f83d17a)

This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a change to branch CAUSEWAY-3676
in repository https://gitbox.apache.org/repos/asf/causeway.git


    from 183f9fecd9 CAUSEWAY-3676: property autocomplete
     new 1c29d95ff5 CAUSEWAY-3676: adds Grade to StaffMember
     new 54fca24478 CAUSEWAY-3676: adds Grade to StaffMember (2)
     new 293f83d17a CAUSEWAY-3676: adds property choices test

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../viewer/graphql/viewer/test/domain/Grade.java   |  49 ++++----
 .../graphql/viewer/test/domain/StaffMember.java    |  12 +-
 .../viewer/test/domain/StaffMemberRepository.java  |   3 +-
 ...ff_member_by_name_and_edit_grade_choices._.gql} |   5 +-
 ...er_by_name_and_edit_grade_choices.approved.json |  14 +++
 .../graphql/viewer/test/e2e/Domain_IntegTest.java  |   8 ++
 .../test/e2e/Schema_IntegTest.schema.approved.json | 125 +++++++++++++++++++++
 ...chema_IntegTest.schema_types_name.approved.json |   2 +
 .../graphql/test/src/test/resources/schema.gql     |  10 ++
 9 files changed, 198 insertions(+), 30 deletions(-)
 copy regressiontests/stable/src/main/java/org/apache/causeway/testdomain/jpa/entities/JpaEntityGeneratedLongId.java => incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/domain/Grade.java (63%)
 copy incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/{Domain_IntegTest.staff_member_name_validate._.gql => Domain_IntegTest.find_staff_member_by_name_and_edit_grade_choices._.gql} (67%)
 create mode 100644 incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Domain_IntegTest.find_staff_member_by_name_and_edit_grade_choices.approved.json


(causeway) 02/03: CAUSEWAY-3676: adds Grade to StaffMember (2)

Posted by da...@apache.org.
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 54fca244788a1c1fe1e3cbceece7f76a98c0b711
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Jan 26 10:04:06 2024 +0000

    CAUSEWAY-3676: adds Grade to StaffMember (2)
---
 .../test/e2e/Schema_IntegTest.schema.approved.json | 125 +++++++++++++++++++++
 ...chema_IntegTest.schema_types_name.approved.json |   2 +
 .../graphql/test/src/test/resources/schema.gql     |  10 ++
 3 files changed, 137 insertions(+)

diff --git a/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Schema_IntegTest.schema.approved.json b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Schema_IntegTest.schema.approved.json
index 26275ba414..2d2e02c5c7 100644
--- a/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Schema_IntegTest.schema.approved.json
+++ b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Schema_IntegTest.schema.approved.json
@@ -25396,6 +25396,17 @@
           },
           "isDeprecated" : false,
           "deprecationReason" : null
+        }, {
+          "name" : "grade",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "OBJECT",
+            "name" : "university_dept_StaffMember__grade__gqlv_property",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
         }, {
           "name" : "name",
           "description" : null,
@@ -25590,6 +25601,120 @@
         "interfaces" : [ ],
         "enumValues" : null,
         "possibleTypes" : null
+      }, {
+        "kind" : "OBJECT",
+        "name" : "university_dept_StaffMember__grade__gqlv_property",
+        "description" : null,
+        "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
+          "name" : "disabled",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "String",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
+          "name" : "get",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "NON_NULL",
+            "name" : null,
+            "ofType" : {
+              "kind" : "SCALAR",
+              "name" : "String",
+              "ofType" : null
+            }
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
+          "name" : "validate",
+          "description" : null,
+          "args" : [ {
+            "name" : "grade",
+            "description" : null,
+            "type" : {
+              "kind" : "SCALAR",
+              "name" : "String",
+              "ofType" : null
+            },
+            "defaultValue" : null
+          } ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "String",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
+          "name" : "choices",
+          "description" : null,
+          "args" : [ {
+            "name" : "grade",
+            "description" : null,
+            "type" : {
+              "kind" : "SCALAR",
+              "name" : "String",
+              "ofType" : null
+            },
+            "defaultValue" : null
+          } ],
+          "type" : {
+            "kind" : "LIST",
+            "name" : null,
+            "ofType" : {
+              "kind" : "SCALAR",
+              "name" : "String",
+              "ofType" : null
+            }
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
+          "name" : "set",
+          "description" : null,
+          "args" : [ {
+            "name" : "grade",
+            "description" : null,
+            "type" : {
+              "kind" : "NON_NULL",
+              "name" : null,
+              "ofType" : {
+                "kind" : "SCALAR",
+                "name" : "String",
+                "ofType" : null
+              }
+            },
+            "defaultValue" : null
+          } ],
+          "type" : {
+            "kind" : "OBJECT",
+            "name" : "university_dept_StaffMember",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        } ],
+        "inputFields" : null,
+        "interfaces" : [ ],
+        "enumValues" : null,
+        "possibleTypes" : null
       }, {
         "kind" : "OBJECT",
         "name" : "university_dept_StaffMember__name__gqlv_property",
diff --git a/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Schema_IntegTest.schema_types_name.approved.json b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Schema_IntegTest.schema_types_name.approved.json
index d6325f4d9a..dbe0d17065 100644
--- a/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Schema_IntegTest.schema_types_name.approved.json
+++ b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Schema_IntegTest.schema_types_name.approved.json
@@ -855,6 +855,8 @@
         "name" : "university_dept_StaffMember__gqlv_input"
       }, {
         "name" : "university_dept_StaffMember__gqlv_meta"
+      }, {
+        "name" : "university_dept_StaffMember__grade__gqlv_property"
       }, {
         "name" : "university_dept_StaffMember__name__gqlv_property"
       }, {
diff --git a/incubator/viewers/graphql/test/src/test/resources/schema.gql b/incubator/viewers/graphql/test/src/test/resources/schema.gql
index cc3f446855..9e0b06b033 100644
--- a/incubator/viewers/graphql/test/src/test/resources/schema.gql
+++ b/incubator/viewers/graphql/test/src/test/resources/schema.gql
@@ -2507,6 +2507,7 @@ type university_dept_Staff {
 type university_dept_StaffMember {
   _gql_meta: university_dept_StaffMember__gqlv_meta
   department: university_dept_StaffMember__department__gqlv_property
+  grade: university_dept_StaffMember__grade__gqlv_property
   name: university_dept_StaffMember__name__gqlv_property
 }
 
@@ -2525,6 +2526,15 @@ type university_dept_StaffMember__gqlv_meta {
   version: String
 }
 
+type university_dept_StaffMember__grade__gqlv_property {
+  choices(grade: String): [String]
+  disabled: String
+  get: String!
+  hidden: Boolean
+  set(grade: String!): university_dept_StaffMember
+  validate(grade: String): String
+}
+
 type university_dept_StaffMember__name__gqlv_property {
   disabled: String
   get: String!


(causeway) 03/03: CAUSEWAY-3676: adds property choices test

Posted by da...@apache.org.
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 293f83d17a1550a4e4f83a8fab2034b70f2d7683
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Jan 26 10:08:20 2024 +0000

    CAUSEWAY-3676: adds property choices test
---
 .../viewer/graphql/viewer/test/domain/StaffMember.java     |  2 +-
 ....find_staff_member_by_name_and_edit_grade_choices._.gql | 12 ++++++++++++
 ...aff_member_by_name_and_edit_grade_choices.approved.json | 14 ++++++++++++++
 .../viewer/graphql/viewer/test/e2e/Domain_IntegTest.java   |  8 ++++++++
 4 files changed, 35 insertions(+), 1 deletion(-)

diff --git a/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/domain/StaffMember.java b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/domain/StaffMember.java
index aa9fb9013b..487ed29b70 100644
--- a/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/domain/StaffMember.java
+++ b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/domain/StaffMember.java
@@ -72,7 +72,7 @@ public class StaffMember implements Comparable<StaffMember> {
 
 
     @Getter @Setter
-    @Property
+    @Property(editing = Editing.ENABLED)
     private Grade grade;
 
 
diff --git a/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Domain_IntegTest.find_staff_member_by_name_and_edit_grade_choices._.gql b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Domain_IntegTest.find_staff_member_by_name_and_edit_grade_choices._.gql
new file mode 100644
index 0000000000..47112721db
--- /dev/null
+++ b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Domain_IntegTest.find_staff_member_by_name_and_edit_grade_choices._.gql
@@ -0,0 +1,12 @@
+{
+  university_dept_Staff {
+    findByName {
+      invoke(name: "Gerry Jones") {
+        grade {
+          disabled
+          choices
+        }
+      }
+    }
+  }
+}
diff --git a/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Domain_IntegTest.find_staff_member_by_name_and_edit_grade_choices.approved.json b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Domain_IntegTest.find_staff_member_by_name_and_edit_grade_choices.approved.json
new file mode 100644
index 0000000000..fc5c85316b
--- /dev/null
+++ b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Domain_IntegTest.find_staff_member_by_name_and_edit_grade_choices.approved.json
@@ -0,0 +1,14 @@
+{
+  "data" : {
+    "university_dept_Staff" : {
+      "findByName" : {
+        "invoke" : {
+          "grade" : {
+            "disabled" : null,
+            "choices" : [ "PROFESSOR", "READER", "SENIOR_LECTURER", "LECTURER", "RESEARCH_ASSISTANT" ]
+          }
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Domain_IntegTest.java b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Domain_IntegTest.java
index 93fab591d8..4bb2648632 100644
--- a/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Domain_IntegTest.java
+++ b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Domain_IntegTest.java
@@ -165,6 +165,14 @@ public class Domain_IntegTest extends CausewayViewerGraphqlTestModuleIntegTestAb
         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 {


(causeway) 01/03: CAUSEWAY-3676: adds Grade to StaffMember

Posted by da...@apache.org.
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 1c29d95ff519b80c21194946b311016561f2426d
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Jan 26 10:03:37 2024 +0000

    CAUSEWAY-3676: adds Grade to StaffMember
---
 .../test/domain/{StaffMember.java => Grade.java}   | 69 ++++++++--------------
 .../graphql/viewer/test/domain/StaffMember.java    | 12 +++-
 .../viewer/test/domain/StaffMemberRepository.java  |  3 +-
 3 files changed, 38 insertions(+), 46 deletions(-)

diff --git a/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/domain/StaffMember.java b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/domain/Grade.java
similarity index 50%
copy from incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/domain/StaffMember.java
copy to incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/domain/Grade.java
index 5116b2bb71..47732f75dd 100644
--- a/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/domain/StaffMember.java
+++ b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/domain/Grade.java
@@ -18,56 +18,39 @@
  */
 package org.apache.causeway.viewer.graphql.viewer.test.domain;
 
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
-
 import java.util.Comparator;
-
-import javax.persistence.*;
-
+import java.util.List;
+import java.util.stream.Collectors;
+
+import javax.inject.Inject;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.OneToOne;
+import javax.persistence.Table;
+import javax.persistence.Transient;
+
+import org.apache.causeway.applib.annotation.Action;
 import org.apache.causeway.applib.annotation.DomainObject;
-import org.apache.causeway.applib.annotation.Editing;
 import org.apache.causeway.applib.annotation.Nature;
 import org.apache.causeway.applib.annotation.Property;
+import org.apache.causeway.applib.annotation.SemanticsOf;
 
-@Entity
-@Table(
-        schema = "public",
-        name = "StaffMember"
-)
-@javax.inject.Named("university.dept.StaffMember")
-@NoArgsConstructor
-@DomainObject(nature = Nature.ENTITY, autoCompleteRepository = StaffMemberRepository.class, autoCompleteMethod = "findByNameMatching")
-public class StaffMember implements Comparable<StaffMember> {
-
-    public StaffMember(String name, Department department) {
-        this.name = name;
-        this.department = department;
-    }
+import static org.apache.causeway.applib.annotation.Editing.ENABLED;
 
-    @Id
-    @GeneratedValue
-    private Long id;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
 
-    @Getter @Setter
-    @Property(editing = Editing.ENABLED)
-    private String name;
-    public String validateName(String proposedName) {
-        if(proposedName.contains("!")) {
-            return "Name cannot contain '!' character";
-        }
-        return null;
-    }
+public enum Grade  {
 
-    @Getter @Setter
-    @Property
-    @ManyToOne(optional = false)
-    @JoinColumn(name = "department_id")
-    private Department department;
+    PROFESSOR,
+    READER,
+    SENIOR_LECTURER,
+    LECTURER,
+    RESEARCH_ASSISTANT,
+    ;
 
-    @Override
-    public int compareTo(final StaffMember o) {
-        return Comparator.comparing(StaffMember::getName).compare(this, o);
-    }
 }
diff --git a/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/domain/StaffMember.java b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/domain/StaffMember.java
index 5116b2bb71..aa9fb9013b 100644
--- a/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/domain/StaffMember.java
+++ b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/domain/StaffMember.java
@@ -41,9 +41,13 @@ import org.apache.causeway.applib.annotation.Property;
 @DomainObject(nature = Nature.ENTITY, autoCompleteRepository = StaffMemberRepository.class, autoCompleteMethod = "findByNameMatching")
 public class StaffMember implements Comparable<StaffMember> {
 
-    public StaffMember(String name, Department department) {
+    public StaffMember(
+            final String name,
+            final Department department,
+            final Grade grade) {
         this.name = name;
         this.department = department;
+        this.grade = grade;
     }
 
     @Id
@@ -66,6 +70,12 @@ public class StaffMember implements Comparable<StaffMember> {
     @JoinColumn(name = "department_id")
     private Department department;
 
+
+    @Getter @Setter
+    @Property
+    private Grade grade;
+
+
     @Override
     public int compareTo(final StaffMember o) {
         return Comparator.comparing(StaffMember::getName).compare(this, o);
diff --git a/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/domain/StaffMemberRepository.java b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/domain/StaffMemberRepository.java
index 917f1941e7..ddbcd7d615 100644
--- a/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/domain/StaffMemberRepository.java
+++ b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/domain/StaffMemberRepository.java
@@ -23,7 +23,6 @@ import java.util.stream.Collectors;
 
 import javax.inject.Inject;
 
-import org.springframework.lang.Nullable;
 import org.springframework.stereotype.Repository;
 
 import org.apache.causeway.applib.services.repository.RepositoryService;
@@ -34,7 +33,7 @@ public class StaffMemberRepository {
     @Inject private RepositoryService repositoryService;
 
     public StaffMember create(final String name, final Department department) {
-        StaffMember staffMember = new StaffMember(name, department);
+        StaffMember staffMember = new StaffMember(name, department, Grade.LECTURER);
         department.new addStaffMember().act(staffMember);
         repositoryService.persistAndFlush(staffMember);
         return staffMember;