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);
});
}