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 2021/09/10 06:21:55 UTC
[isis] branch master updated: ISIS-2774: simplify MM validation
message testing
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 3eb76a1 ISIS-2774: simplify MM validation message testing
3eb76a1 is described below
commit 3eb76a17abf501069539b7f5440c8397a04a4c15
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri Sep 10 08:21:48 2021 +0200
ISIS-2774: simplify MM validation message testing
---
.../progmodel/ProgrammingModelConstants.java | 18 ++++++++++-----
.../DomainModelTest_usingBadDomain.java | 26 ++++++++++++----------
...lTest_usingBadDomain_noAnnotationEnforced.java} | 14 ++++++++----
...OrphanedActionSupportNoAnnotationEnforced.java} | 2 +-
4 files changed, 38 insertions(+), 22 deletions(-)
diff --git a/core/config/src/main/java/org/apache/isis/core/config/progmodel/ProgrammingModelConstants.java b/core/config/src/main/java/org/apache/isis/core/config/progmodel/ProgrammingModelConstants.java
index 6bc3d23..e1e4502 100644
--- a/core/config/src/main/java/org/apache/isis/core/config/progmodel/ProgrammingModelConstants.java
+++ b/core/config/src/main/java/org/apache/isis/core/config/progmodel/ProgrammingModelConstants.java
@@ -24,6 +24,7 @@ import java.lang.reflect.Member;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.Collection;
+import java.util.Map;
import java.util.function.Function;
import java.util.function.IntFunction;
import java.util.function.Predicate;
@@ -41,6 +42,7 @@ import org.apache.isis.applib.annotation.ObjectLifecycle;
import org.apache.isis.applib.annotation.ObjectSupport;
import org.apache.isis.applib.services.i18n.TranslatableString;
import org.apache.isis.commons.collections.Can;
+import org.apache.isis.commons.internal.base._Refs;
import org.apache.isis.commons.internal.base._Strings;
import lombok.Getter;
@@ -322,7 +324,12 @@ public final class ProgrammingModelConstants {
;
private final String template;
public String getMessage(final Identifier featureIdentifier) {
- return processMessageTemplate(template, featureIdentifier);
+ return getMessage(Map.of(
+ "type", featureIdentifier.getLogicalType().getClassName(),
+ "member", featureIdentifier.getMemberLogicalName()));
+ }
+ public String getMessage(final Map<String, String> templateVars) {
+ return processMessageTemplate(template, templateVars);
}
}
@@ -347,10 +354,11 @@ public final class ProgrammingModelConstants {
private static String processMessageTemplate(
final String template,
- final Identifier identifier) {
- return template
- .replace("${type}", identifier.getLogicalType().getClassName())
- .replace("${member}", identifier.getMemberLogicalName());
+ final Map<String, String> templateVars) {
+
+ val templateRef = _Refs.stringRef(template);
+ templateVars.forEach((k, v)->templateRef.update(str->str.replace("${" + k + "}", v)));
+ return templateRef.getValue();
}
diff --git a/regressiontests/stable-domainmodel/src/test/java/org/apache/isis/testdomain/domainmodel/DomainModelTest_usingBadDomain.java b/regressiontests/stable-domainmodel/src/test/java/org/apache/isis/testdomain/domainmodel/DomainModelTest_usingBadDomain.java
index c42ffaa..2567f87 100644
--- a/regressiontests/stable-domainmodel/src/test/java/org/apache/isis/testdomain/domainmodel/DomainModelTest_usingBadDomain.java
+++ b/regressiontests/stable-domainmodel/src/test/java/org/apache/isis/testdomain/domainmodel/DomainModelTest_usingBadDomain.java
@@ -19,6 +19,7 @@
package org.apache.isis.testdomain.domainmodel;
import java.lang.annotation.Annotation;
+import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@@ -50,6 +51,7 @@ import org.apache.isis.core.config.IsisConfiguration;
import org.apache.isis.core.config.environment.IsisSystemEnvironment;
import org.apache.isis.core.config.metamodel.specloader.IntrospectionMode;
import org.apache.isis.core.config.presets.IsisPresets;
+import org.apache.isis.core.config.progmodel.ProgrammingModelConstants;
import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
import org.apache.isis.testdomain.conf.Configuration_headless;
import org.apache.isis.testdomain.model.bad.AmbiguousMixinAnnotations;
@@ -116,10 +118,10 @@ class DomainModelTest_usingBadDomain {
validator.assertAnyFailuresContaining(
Identifier.classIdentifier(LogicalType.fqcn(InvalidOrphanedActionSupport.class)),
- "InvalidOrphanedActionSupport#hideMe(): "
- + "is assumed to support a property, collection or action. "
- + "Unmet constraint(s): unsupported method signature or orphaned "
- + "(not associated with a member)");
+ ProgrammingModelConstants.Validation.ORPHANED_METHOD
+ .getMessage(Map.of(
+ "type", InvalidOrphanedActionSupport.class.getName(),
+ "member", "hideMe()")));
}
@@ -132,10 +134,10 @@ class DomainModelTest_usingBadDomain {
validator.assertAnyFailuresContaining(
Identifier.classIdentifier(LogicalType.fqcn(InvalidOrphanedPropertySupport.class)),
- "InvalidOrphanedPropertySupport#hideMe(): "
- + "is assumed to support a property, collection or action. "
- + "Unmet constraint(s): unsupported method signature or orphaned "
- + "(not associated with a member)");
+ ProgrammingModelConstants.Validation.ORPHANED_METHOD
+ .getMessage(Map.of(
+ "type", InvalidOrphanedPropertySupport.class.getName(),
+ "member", "hideMe()")));
}
@Test
@@ -147,10 +149,10 @@ class DomainModelTest_usingBadDomain {
validator.assertAnyFailuresContaining(
Identifier.classIdentifier(LogicalType.fqcn(InvalidOrphanedCollectionSupport.class)),
- "InvalidOrphanedCollectionSupport#hideMe(): "
- + "is assumed to support a property, collection or action. "
- + "Unmet constraint(s): unsupported method signature or orphaned "
- + "(not associated with a member)");
+ ProgrammingModelConstants.Validation.ORPHANED_METHOD
+ .getMessage(Map.of(
+ "type", InvalidOrphanedCollectionSupport.class.getName(),
+ "member", "hideMe()")));
}
@Test
diff --git a/regressiontests/stable-domainmodel/src/test/java/org/apache/isis/testdomain/domainmodel/DomainModelTest_usingBadDomain_noActionEnforced.java b/regressiontests/stable-domainmodel/src/test/java/org/apache/isis/testdomain/domainmodel/DomainModelTest_usingBadDomain_noAnnotationEnforced.java
similarity index 87%
rename from regressiontests/stable-domainmodel/src/test/java/org/apache/isis/testdomain/domainmodel/DomainModelTest_usingBadDomain_noActionEnforced.java
rename to regressiontests/stable-domainmodel/src/test/java/org/apache/isis/testdomain/domainmodel/DomainModelTest_usingBadDomain_noAnnotationEnforced.java
index 300657d..b2fa297 100644
--- a/regressiontests/stable-domainmodel/src/test/java/org/apache/isis/testdomain/domainmodel/DomainModelTest_usingBadDomain_noActionEnforced.java
+++ b/regressiontests/stable-domainmodel/src/test/java/org/apache/isis/testdomain/domainmodel/DomainModelTest_usingBadDomain_noAnnotationEnforced.java
@@ -18,6 +18,8 @@
*/
package org.apache.isis.testdomain.domainmodel;
+import java.util.Map;
+
import javax.inject.Inject;
import org.junit.jupiter.api.Test;
@@ -35,10 +37,11 @@ import org.apache.isis.core.config.IsisConfiguration;
import org.apache.isis.core.config.environment.IsisSystemEnvironment;
import org.apache.isis.core.config.metamodel.specloader.IntrospectionMode;
import org.apache.isis.core.config.presets.IsisPresets;
+import org.apache.isis.core.config.progmodel.ProgrammingModelConstants;
import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
import org.apache.isis.testdomain.conf.Configuration_headless;
import org.apache.isis.testdomain.model.badnoactenforce.Configuration_usingInvalidDomain_noActionEnforced;
-import org.apache.isis.testdomain.model.badnoactenforce.InvalidOrphanedActionSupportNoActionEnforced;
+import org.apache.isis.testdomain.model.badnoactenforce.InvalidOrphanedActionSupportNoAnnotationEnforced;
import org.apache.isis.testing.integtestsupport.applib.validate.DomainModelValidator;
import lombok.val;
@@ -58,7 +61,7 @@ import lombok.val;
IsisPresets.SilenceMetaModel,
IsisPresets.SilenceProgrammingModel
})
-class DomainModelTest_usingBadDomain_noActionEnforced {
+class DomainModelTest_usingBadDomain_noAnnotationEnforced {
@Inject private IsisConfiguration configuration;
@Inject private IsisSystemEnvironment isisSystemEnvironment;
@@ -84,8 +87,11 @@ class DomainModelTest_usingBadDomain_noActionEnforced {
assertThrows(DomainModelException.class, validateDomainModel::throwIfInvalid);
validateDomainModel.assertAnyFailuresContaining(
- Identifier.classIdentifier(LogicalType.fqcn(InvalidOrphanedActionSupportNoActionEnforced.class)),
- "is assumed to support");
+ Identifier.classIdentifier(LogicalType.fqcn(InvalidOrphanedActionSupportNoAnnotationEnforced.class)),
+ ProgrammingModelConstants.Validation.ORPHANED_METHOD
+ .getMessage(Map.of(
+ "type", InvalidOrphanedActionSupportNoAnnotationEnforced.class.getName(),
+ "member", "hideOrphaned()")));
}
diff --git a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/model/badnoactenforce/InvalidOrphanedActionSupportNoActionEnforced.java b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/model/badnoactenforce/InvalidOrphanedActionSupportNoAnnotationEnforced.java
similarity index 94%
rename from regressiontests/stable/src/main/java/org/apache/isis/testdomain/model/badnoactenforce/InvalidOrphanedActionSupportNoActionEnforced.java
rename to regressiontests/stable/src/main/java/org/apache/isis/testdomain/model/badnoactenforce/InvalidOrphanedActionSupportNoAnnotationEnforced.java
index 94fb647..8c8797c 100644
--- a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/model/badnoactenforce/InvalidOrphanedActionSupportNoActionEnforced.java
+++ b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/model/badnoactenforce/InvalidOrphanedActionSupportNoAnnotationEnforced.java
@@ -22,7 +22,7 @@ import org.apache.isis.applib.annotation.DomainObject;
import org.apache.isis.applib.annotation.Nature;
@DomainObject(nature = Nature.VIEW_MODEL)
-public class InvalidOrphanedActionSupportNoActionEnforced {
+public class InvalidOrphanedActionSupportNoAnnotationEnforced {
// should fail
public boolean hideOrphaned() {