You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2022/01/20 13:07:13 UTC

[isis] branch master updated: ISIS-2944: complete the list of action method support tests

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

ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git


The following commit(s) were added to refs/heads/master by this push:
     new ab53865  ISIS-2944: complete the list of action method support tests
ab53865 is described below

commit ab538655b0ebf46ca096121e0e0d2f23469b3b7c
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Jan 20 14:06:25 2022 +0100

    ISIS-2944: complete the list of action method support tests
---
 .../DomainModelTest_usingGoodDomain.java           |  54 +++++++++--
 .../model/good/ProperMemberSupportDiscovery.java   |  10 +-
 .../interaction/DomainObjectTesterFactory.java     | 108 ++++++++++++---------
 3 files changed, 112 insertions(+), 60 deletions(-)

diff --git a/regressiontests/stable-domainmodel/src/test/java/org/apache/isis/testdomain/domainmodel/DomainModelTest_usingGoodDomain.java b/regressiontests/stable-domainmodel/src/test/java/org/apache/isis/testdomain/domainmodel/DomainModelTest_usingGoodDomain.java
index a180baf..135f8a0 100644
--- a/regressiontests/stable-domainmodel/src/test/java/org/apache/isis/testdomain/domainmodel/DomainModelTest_usingGoodDomain.java
+++ b/regressiontests/stable-domainmodel/src/test/java/org/apache/isis/testdomain/domainmodel/DomainModelTest_usingGoodDomain.java
@@ -563,6 +563,7 @@ class DomainModelTest_usingGoodDomain {
         coll.assertCollectionElements(List.of("Foo"));
     }
 
+    @SuppressWarnings("unchecked")
     @Test
     void properMemberSupportDiscovery() {
 
@@ -609,21 +610,60 @@ class DomainModelTest_usingGoodDomain {
         // disable1PlaceOrder(z): String = "my disable reason-1"
         act.assertParameterUsability(
                 false, // skip rule checking
-                arg0->assertEquals(
+                arg0Veto->assertEquals(
                         "my disable reason-0",
-                        arg0),
-                arg1->assertEquals(
+                        arg0Veto),
+                arg1Veto->assertEquals(
                         "my disable reason-1",
-                        arg1));
-
-        //TODO missing asserts
+                        arg1Veto));
 
         // choices0PlaceOrder(x): List.of("my choice")
-        // autoComplete1PlaceOrder(y, search): List.of("my search")
+        act.assertParameterModel(
+                false, // skip rule checking
+                pendingArgsWhen->{},
+                pendingArgsThen->{
+
+                    val actualChoices =
+                            pendingArgsThen.getObservableParamChoices(0).getValue().map(ManagedObject::getPojo);
+                    assertEquals(
+                            actualChoices,
+                            Can.of("my choice"));
+
+                });
+
+        // autoComplete1PlaceOrder(y, search): List.of("my search arg=" + search)
+        act.assertParameterModel(
+                false, // skip rule checking
+                pendingArgsWhen->{
+                    pendingArgsWhen.getBindableParamSearchArgument(1).setValue("hello");
+                },
+                pendingArgsThen->{
+
+                    val actualChoices =
+                            pendingArgsThen.getObservableParamChoices(1).getValue().map(ManagedObject::getPojo);
+                    assertEquals(
+                            actualChoices,
+                            Can.of("my search arg=hello"));
+
+                });
 
         // validate0PlaceOrder(String x): String = "my validation-0"
         // validate1PlaceOrder(String y): String = "my validation-1"
         // validatePlaceOrder(String x, final String y): String = "my validation"
+        act.assertParameterModel(
+                false, // skip rule checking
+                pendingArgsWhen->{},
+                pendingArgsThen->{
+                    assertEquals(
+                            pendingArgsThen.getObservableParamValidation(0).getValue(),
+                            "my validation-0");
+                    assertEquals(
+                            pendingArgsThen.getObservableParamValidation(1).getValue(),
+                            "my validation-1");
+                    assertEquals(
+                            pendingArgsThen.validateParameterSetForAction().getReason(),
+                            "my validation");
+                });
 
     }
 
diff --git a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/model/good/ProperMemberSupportDiscovery.java b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/model/good/ProperMemberSupportDiscovery.java
index 91a0828..ad7442e 100644
--- a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/model/good/ProperMemberSupportDiscovery.java
+++ b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/model/good/ProperMemberSupportDiscovery.java
@@ -38,12 +38,8 @@ public class ProperMemberSupportDiscovery {
         @MemberSupport public String namedPlaceOrder() { return "my name"; }
         @MemberSupport public String describedPlaceOrder() { return "my description"; }
         @MemberSupport public boolean hidePlaceOrder() { return false; }
-        @MemberSupport public boolean hide0PlaceOrder(final String x) {
-            System.err.printf("hide0PlaceOrder %s%n", x);
-            return true; }
-        @MemberSupport public boolean hide1PlaceOrder(final String y) {
-            System.err.printf("hide1PlaceOrder %s%n", y);
-            return false; }
+        @MemberSupport public boolean hide0PlaceOrder(final String x) { return true; }
+        @MemberSupport public boolean hide1PlaceOrder(final String y) { return false; }
         @MemberSupport public String disablePlaceOrder() { return "my disable reason"; }
         @MemberSupport public String disable0PlaceOrder(final String x) { return "my disable reason-0";}
         @MemberSupport public String disable1PlaceOrder(final String z) { return "my disable reason-1";}
@@ -56,7 +52,7 @@ public class ProperMemberSupportDiscovery {
         @MemberSupport public java.util.Collection<String> autoComplete1PlaceOrder(
                 final String y,
                 @MinLength(3) final String search) {
-            return List.of("my search");
+            return List.of("my search arg=" + search);
         }
 
         @MemberSupport public String validate0PlaceOrder(final String x) { return "my validation-0";}
diff --git a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/util/interaction/DomainObjectTesterFactory.java b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/util/interaction/DomainObjectTesterFactory.java
index 3e41400..d1ec9ce 100644
--- a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/util/interaction/DomainObjectTesterFactory.java
+++ b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/util/interaction/DomainObjectTesterFactory.java
@@ -420,57 +420,60 @@ public class DomainObjectTesterFactory {
                 final boolean checkRules,
                 final Consumer<Boolean> ...argVisibleChecks) {
 
-            assertExists(true);
+            assertParameterModel(checkRules,
+                // when
+                pendingArgs->{
 
-            val visibilityTests = Can.ofArray(argVisibleChecks);
 
-            interactionService.runAnonymous(()->{
 
-                val pendingArgs = startParameterNegotiation(checkRules);
-                pendingArgs.getParamModels()
-                .forEach(param->{
+                },
+                // then
+                pendingArgs->{
 
-                    val consent = pendingArgs.getVisibilityConsent(param.getParamNr());
+                    val visibilityTests = Can.ofArray(argVisibleChecks);
 
-                    visibilityTests
-                        .get(param.getParamNr())
-                        .ifPresent(visibilityTest->
-                            visibilityTest.accept(consent.isAllowed()));
-                });
+                    pendingArgs.getParamModels()
+                    .forEach(param->{
 
-                captureCommand();
+                        val consent = pendingArgs.getVisibilityConsent(param.getParamNr());
 
-            });
+                        visibilityTests
+                            .get(param.getParamNr())
+                            .ifPresent(visibilityTest->
+                                visibilityTest.accept(consent.isAllowed()));
+                    });
 
+                });
         }
 
         public void assertParameterUsability(
                 final boolean checkRules,
                 final Consumer<String> ...argUsableChecks) {
 
-            assertExists(true);
+            assertParameterModel(checkRules,
+                // when
+                pendingArgs->{
 
-            val usabilityTests = Can.ofArray(argUsableChecks);
 
-            interactionService.runAnonymous(()->{
 
-                val pendingArgs = startParameterNegotiation(checkRules);
-                pendingArgs.getParamModels()
-                .forEach(param->{
+                },
+                // then
+                pendingArgs->{
 
-                    val consent = pendingArgs.getUsabilityConsent(param.getParamNr());
+                    val usabilityTests = Can.ofArray(argUsableChecks);
 
-                    usabilityTests
-                        .get(param.getParamNr())
-                        .ifPresent(usabilityTest->
-                        usabilityTest.accept(consent.getReason()));
-                });
+                    pendingArgs.getParamModels()
+                    .forEach(param->{
 
-                captureCommand();
-
-            });
+                        val consent = pendingArgs.getUsabilityConsent(param.getParamNr());
 
+                        usabilityTests
+                            .get(param.getParamNr())
+                            .ifPresent(usabilityTest->
+                            usabilityTest.accept(consent.getReason()));
+                    });
 
+                });
 
         }
 
@@ -479,36 +482,49 @@ public class DomainObjectTesterFactory {
                 final boolean checkRules,
                 @SuppressWarnings("rawtypes") final UnaryOperator ...pojoDefaultArgMapper) {
 
-            assertExists(true);
+            assertParameterModel(checkRules,
+                // when
+                pendingArgs->{
 
-            val pojoArgMappers = Can.ofArray(pojoDefaultArgMapper);
+                    val pojoArgMappers = Can.ofArray(pojoDefaultArgMapper);
 
-            interactionService.runAnonymous(()->{
+                    pendingArgs.getParamModels()
+                    .forEach(param->{
 
-                val pendingArgs = startParameterNegotiation(checkRules);
+                        val objManager = param.getMetaModel().getObjectManager();
 
-                pendingArgs.getParamModels()
-                .forEach(param->{
-
-                    val objManager = param.getMetaModel().getObjectManager();
-
-                    pojoArgMappers
-                        .get(param.getParamNr())
-                        .ifPresent(argMapper->
-                            param.getValue().setValue(
+                        pojoArgMappers
+                            .get(param.getParamNr())
+                            .ifPresent(argMapper->
+                                param.getValue().setValue(
                                     objManager
                                     .adapt(
                                         argMapper
                                         .apply(ManagedObjects.UnwrapUtil.single(param.getValue().getValue())))));
+                    });
 
-                });
+                },
+                // then
+                pendingArgs->{
 
-                captureCommand();
+                    assertEquals(expectedMessage, pendingArgs.getObservableActionValidation().getValue());
 
-                pendingArgs.activateValidationFeedback();
+                });
+        }
 
-                assertEquals(expectedMessage, pendingArgs.getObservableActionValidation().getValue());
+        public void assertParameterModel(
+                final boolean checkRules,
+                final Consumer<ParameterNegotiationModel> when,
+                final Consumer<ParameterNegotiationModel> then) {
 
+            assertExists(true);
+
+            interactionService.runAnonymous(()->{
+                val pendingArgs = startParameterNegotiation(checkRules);
+                when.accept(pendingArgs);
+                captureCommand();
+                pendingArgs.activateValidationFeedback();
+                then.accept(pendingArgs);
             });
 
         }