This is an automated email from the ASF dual-hosted git repository.
gitgabrio pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-kie-drools.git
The following commit(s) were added to refs/heads/main by this push:
new 745a23f7fc [incubator-kie-issues#1066] Implement usage of namespace
inside href for unnamed imports (#5830)
745a23f7fc is described below
commit 745a23f7fc8bd7a31ed56c3a45ddcf2a9e1184ac
Author: Gabriele Cardosi <[email protected]>
AuthorDate: Tue Apr 9 07:29:46 2024 +0200
[incubator-kie-issues#1066] Implement usage of namespace inside href for
unnamed imports (#5830)
* [incubator-kie-issues#1066] Soring both default and imported id for
unnamed imports
* [incubator-kie-issues#1066] Implementing tests with and without namespace
in href
---------
Co-authored-by: Gabriele-Cardosi <[email protected]>
---
.../java/org/kie/dmn/core/impl/DMNModelImpl.java | 29 +++++-----
.../java/org/kie/dmn/core/impl/DMNRuntimeImpl.java | 5 +-
.../java/org/kie/dmn/core/DMNCompilerTest.java | 55 +++++++++++--------
.../dmn/core/compiler/UnnamedImportUtilsTest.java | 62 +++++++++++++++-------
.../valid_models/DMNv1_5/Imported_Model_Unamed.dmn | 6 ++-
...rting_EmptyNamed_Model_With_Href_Namespace.dmn} | 11 ++--
...ng_EmptyNamed_Model_Without_Href_Namespace.dmn} | 5 --
.../dmn/validation/v1_5/DMN15ValidationsTest.java | 25 ++++++---
8 files changed, 117 insertions(+), 81 deletions(-)
diff --git
a/kie-dmn/kie-dmn-core/src/main/java/org/kie/dmn/core/impl/DMNModelImpl.java
b/kie-dmn/kie-dmn-core/src/main/java/org/kie/dmn/core/impl/DMNModelImpl.java
index f7a45a44d3..d100cbbc85 100644
--- a/kie-dmn/kie-dmn-core/src/main/java/org/kie/dmn/core/impl/DMNModelImpl.java
+++ b/kie-dmn/kie-dmn-core/src/main/java/org/kie/dmn/core/impl/DMNModelImpl.java
@@ -23,6 +23,7 @@ import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
@@ -167,16 +168,12 @@ public class DMNModelImpl
return node.getName();
} else {
Optional<String> lookupAlias =
getImportAliasFor(node.getModelNamespace(), node.getModelName());
- if (lookupAlias.isPresent()) {
- return lookupAlias.get() + "." + node.getName();
- } else {
- return null;
- }
+ return lookupAlias.map(s -> s + "." + node.getName()).orElse(null);
}
}
public void addInput(InputDataNode idn) {
- inputs.put(computeDRGElementModelLocalId(idn), idn);
+ computeDRGElementModelLocalId(idn).forEach(id -> inputs.put(id, idn));
}
@Override
@@ -199,24 +196,24 @@ public class DMNModelImpl
@Override
public Set<InputDataNode> getInputs() {
- return this.inputs.values().stream().collect(
Collectors.toCollection(LinkedHashSet::new) );
+ return new LinkedHashSet<>(this.inputs.values());
}
public void addDecision(DecisionNode dn) {
- decisions.put(computeDRGElementModelLocalId(dn), dn);
+ computeDRGElementModelLocalId(dn).forEach(id -> decisions.put(id, dn));
}
- private String computeDRGElementModelLocalId(DMNNode node) {
+ private List<String> computeDRGElementModelLocalId(DMNNode node) {
// incubator-kie-issues#852: The idea is to not treat the anonymous
models as import, but to "merge" them with original opne,
// Here, if the node comes from an unnamed imported model, then it is
stored only with its id, to be looked for
// as if defined in the model itself
if (node.getModelNamespace().equals(definitions.getNamespace())) {
- return node.getId();
+ return Collections.singletonList(node.getId());
} else if (isInUnnamedImport(node, this)) {
// the node is an unnamed import
- return node.getId();
+ return Arrays.asList(node.getId(), node.getModelNamespace() + "#"
+ node.getId());
} else {
- return node.getModelNamespace() + "#" + node.getId();
+ return Collections.singletonList(node.getModelNamespace() + "#" +
node.getId());
}
}
@@ -241,7 +238,7 @@ public class DMNModelImpl
@Override
public Set<DecisionNode> getDecisions() {
- return
this.decisions.values().stream().collect(Collectors.toCollection(LinkedHashSet::new));
+ return new LinkedHashSet<>(this.decisions.values());
}
@Override
@@ -265,7 +262,7 @@ public class DMNModelImpl
}
public void addDecisionService(DecisionServiceNode dsn) {
- decisionServices.put(computeDRGElementModelLocalId(dsn), dsn);
+ computeDRGElementModelLocalId(dsn).forEach(id ->
decisionServices.put(id, dsn));
}
public DecisionServiceNode getDecisionServiceById(String id) {
@@ -286,11 +283,11 @@ public class DMNModelImpl
@Override
public Collection<DecisionServiceNode> getDecisionServices() {
- return
this.decisionServices.values().stream().collect(Collectors.toCollection(LinkedHashSet::new));
+ return new LinkedHashSet<>(this.decisionServices.values());
}
public void addBusinessKnowledgeModel(BusinessKnowledgeModelNode bkm) {
- bkms.put(computeDRGElementModelLocalId(bkm), bkm);
+ computeDRGElementModelLocalId(bkm).forEach(id -> bkms.put(id, bkm));
}
@Override
diff --git
a/kie-dmn/kie-dmn-core/src/main/java/org/kie/dmn/core/impl/DMNRuntimeImpl.java
b/kie-dmn/kie-dmn-core/src/main/java/org/kie/dmn/core/impl/DMNRuntimeImpl.java
index 85ccf42b78..12a3eebea5 100644
---
a/kie-dmn/kie-dmn-core/src/main/java/org/kie/dmn/core/impl/DMNRuntimeImpl.java
+++
b/kie-dmn/kie-dmn-core/src/main/java/org/kie/dmn/core/impl/DMNRuntimeImpl.java
@@ -461,7 +461,10 @@ public class DMNRuntimeImpl
private boolean isNodeValueDefined(DMNResultImpl result, DMNNode
callerNode, DMNNode node) {
if
(node.getModelNamespace().equals(result.getContext().scopeNamespace().orElse(result.getModel().getNamespace())))
{
return result.getContext().isDefined(node.getName());
- } else {
+ } else if (isInUnnamedImport(node, (DMNModelImpl) result.getModel()))
{
+ // the node is an unnamed import
+ return result.getContext().isDefined(node.getName());
+ } else {
Optional<String> importAlias =
callerNode.getModelImportAliasFor(node.getModelNamespace(),
node.getModelName());
if (importAlias.isPresent()) {
Object aliasContext =
result.getContext().get(importAlias.get());
diff --git
a/kie-dmn/kie-dmn-core/src/test/java/org/kie/dmn/core/DMNCompilerTest.java
b/kie-dmn/kie-dmn-core/src/test/java/org/kie/dmn/core/DMNCompilerTest.java
index c52ba8da6d..55ef34f927 100644
--- a/kie-dmn/kie-dmn-core/src/test/java/org/kie/dmn/core/DMNCompilerTest.java
+++ b/kie-dmn/kie-dmn-core/src/test/java/org/kie/dmn/core/DMNCompilerTest.java
@@ -273,8 +273,18 @@ public class DMNCompilerTest extends BaseVariantTest {
}
@Test
- public void testEmptyNamedModelImport() {
- final DMNRuntime runtime =
createRuntimeWithAdditionalResources("valid_models/DMNv1_5/Importing_EmptyNamed_Model.dmn",
+ public void testEmptyNamedModelImportWithHrefNamespace() {
+
commonValidateUnnamedImport("valid_models/DMNv1_5/Importing_EmptyNamed_Model_With_Href_Namespace.dmn",
"valid_models/DMNv1_5/Imported_Model_Unamed.dmn");
+ }
+
+ @Test
+ public void testEmptyNamedModelImportWithoutHrefNamespace() {
+
commonValidateUnnamedImport("valid_models/DMNv1_5/Importing_EmptyNamed_Model_Without_Href_Namespace.dmn",
"valid_models/DMNv1_5/Imported_Model_Unamed.dmn");
+ }
+
+ @Test
+ public void testOverridingEmptyNamedModelImport() {
+ final DMNRuntime runtime =
createRuntimeWithAdditionalResources("valid_models/DMNv1_5/Importing_OverridingEmptyNamed_Model.dmn",
this.getClass(),
"valid_models/DMNv1_5/Imported_Model_Unamed.dmn");
@@ -286,7 +296,7 @@ public class DMNCompilerTest extends BaseVariantTest {
}
final DMNModel importingModel =
runtime.getModel("http://www.trisotech.com/dmn/definitions/_f79aa7a4-f9a3-410a-ac95-bea496edabgc",
- "Importing empty-named
Model");
+ "Importing
empty-named Model");
assertThat(importingModel).isNotNull();
for (final DMNMessage message : importingModel.getMessages()) {
LOG.debug("{}", message);
@@ -319,10 +329,26 @@ public class DMNCompilerTest extends BaseVariantTest {
}
@Test
- public void testOverridingEmptyNamedModelImport() {
- final DMNRuntime runtime =
createRuntimeWithAdditionalResources("valid_models/DMNv1_5/Importing_OverridingEmptyNamed_Model.dmn",
+ public void testWrongComparisonOps() {
+ final DMNRuntime runtime = createRuntime("WrongComparisonOps.dmn",
this.getClass());
+ final DMNModel dmnModel =
runtime.getModel("http://www.trisotech.com/definitions/_a937d093-86d3-4306-8db8-1e7a33588b68",
"Drawing 1");
+ assertThat(dmnModel).isNotNull();
+
assertThat(dmnModel.hasErrors()).as(DMNRuntimeUtil.formatMessages(dmnModel.getMessages())).isFalse();
+
assertThat(dmnModel.getMessages()).as(DMNRuntimeUtil.formatMessages(dmnModel.getMessages())).hasSize(4);
+
assertThat(dmnModel.getMessages(DMNMessage.Severity.WARN)).as(DMNRuntimeUtil.formatMessages(dmnModel.getMessages())).hasSize(4);
+ assertThat(dmnModel.getMessages(DMNMessage.Severity.WARN)
+ .stream()
+ .filter(m ->
m.getSourceId().equals("_d72d6fab-1e67-4fe7-9c12-54800d6fe294") ||
+
m.getSourceId().equals("_2390dd99-094d-4f97-aecc-9cccb697ce05") ||
+
m.getSourceId().equals("_0c292d34-498e-4b08-ae99-3c694197b69f") ||
+
m.getSourceId().equals("_21c7d800-b806-4b2e-9a10-00828de7f2d2"))
+
.count()).as(DMNRuntimeUtil.formatMessages(dmnModel.getMessages())).isEqualTo(4L);
+ }
+
+ private void commonValidateUnnamedImport(String importingModelRef, String
importedModelRef) {
+ final DMNRuntime runtime =
createRuntimeWithAdditionalResources(importingModelRef,
this.getClass(),
-
"valid_models/DMNv1_5/Imported_Model_Unamed.dmn");
+
importedModelRef);
final DMNModel importedModel =
runtime.getModel("http://www.trisotech.com/dmn/definitions/_f27bb64b-6fc7-4e1f-9848-11ba35e0df44",
"Imported Model");
@@ -363,21 +389,4 @@ public class DMNCompilerTest extends BaseVariantTest {
assertThat(allProperties).containsEntry("Imported Greeting",
"Hello John!");
}
}
-
- @Test
- public void testWrongComparisonOps() {
- final DMNRuntime runtime = createRuntime("WrongComparisonOps.dmn",
this.getClass());
- final DMNModel dmnModel =
runtime.getModel("http://www.trisotech.com/definitions/_a937d093-86d3-4306-8db8-1e7a33588b68",
"Drawing 1");
- assertThat(dmnModel).isNotNull();
-
assertThat(dmnModel.hasErrors()).as(DMNRuntimeUtil.formatMessages(dmnModel.getMessages())).isFalse();
-
assertThat(dmnModel.getMessages()).as(DMNRuntimeUtil.formatMessages(dmnModel.getMessages())).hasSize(4);
-
assertThat(dmnModel.getMessages(DMNMessage.Severity.WARN)).as(DMNRuntimeUtil.formatMessages(dmnModel.getMessages())).hasSize(4);
- assertThat(dmnModel.getMessages(DMNMessage.Severity.WARN)
- .stream()
- .filter(m ->
m.getSourceId().equals("_d72d6fab-1e67-4fe7-9c12-54800d6fe294") ||
-
m.getSourceId().equals("_2390dd99-094d-4f97-aecc-9cccb697ce05") ||
-
m.getSourceId().equals("_0c292d34-498e-4b08-ae99-3c694197b69f") ||
-
m.getSourceId().equals("_21c7d800-b806-4b2e-9a10-00828de7f2d2"))
-
.count()).as(DMNRuntimeUtil.formatMessages(dmnModel.getMessages())).isEqualTo(4L);
- }
}
diff --git
a/kie-dmn/kie-dmn-core/src/test/java/org/kie/dmn/core/compiler/UnnamedImportUtilsTest.java
b/kie-dmn/kie-dmn-core/src/test/java/org/kie/dmn/core/compiler/UnnamedImportUtilsTest.java
index e4e9309a97..2f317557a5 100644
---
a/kie-dmn/kie-dmn-core/src/test/java/org/kie/dmn/core/compiler/UnnamedImportUtilsTest.java
+++
b/kie-dmn/kie-dmn-core/src/test/java/org/kie/dmn/core/compiler/UnnamedImportUtilsTest.java
@@ -26,23 +26,15 @@ import static
org.kie.dmn.core.compiler.UnnamedImportUtils.isInUnnamedImport;
public class UnnamedImportUtilsTest {
@Test
- public void isInUnnamedImportTrue() {
- final DMNRuntime runtime =
DMNRuntimeUtil.createRuntimeWithAdditionalResources("valid_models/DMNv1_5/Importing_EmptyNamed_Model"
+
-
".dmn",
-
this.getClass(),
-
"valid_models/DMNv1_5/Imported_Model_Unamed.dmn");
+ public void isInUnnamedImportTrueWithHrefNamespace() {
+
commonIsInUnnamedImportTrue("valid_models/DMNv1_5/Importing_EmptyNamed_Model_With_Href_Namespace.dmn",
+
"valid_models/DMNv1_5/Imported_Model_Unamed.dmn");
+ }
- final DMNModel importedModel =
runtime.getModel("http://www.trisotech.com/dmn/definitions/_f27bb64b-6fc7-4e1f-9848-11ba35e0df44",
- "Imported Model");
- assertThat(importedModel).isNotNull();
- final DMNModelImpl importingModel =
(DMNModelImpl)runtime.getModel("http://www.trisotech.com/dmn/definitions/_f79aa7a4-f9a3-410a-ac95-bea496edabgc",
- "Importing
empty-named Model");
- assertThat(importingModel).isNotNull();
- importedModel.getDecisions().forEach(node ->
assertTrue(isInUnnamedImport(node, importingModel)));
- importedModel.getBusinessKnowledgeModels().forEach(node ->
assertTrue(isInUnnamedImport(node, importingModel)));
- importedModel.getDecisionServices().forEach(node ->
assertTrue(isInUnnamedImport(node, importingModel)));
- importedModel.getInputs().forEach(node ->
assertTrue(isInUnnamedImport(node, importingModel)));
- importedModel.getItemDefinitions().forEach(node ->
assertTrue(isInUnnamedImport(node, importingModel)));
+ @Test
+ public void isInUnnamedImportTrueWithoutHrefNamespace() {
+
commonIsInUnnamedImportTrue("valid_models/DMNv1_5/Importing_EmptyNamed_Model_Without_Href_Namespace.dmn",
+
"valid_models/DMNv1_5/Imported_Model_Unamed.dmn");
}
@Test
@@ -81,10 +73,42 @@ public class UnnamedImportUtilsTest {
}
@Test
- public void addIfNotPresentFalse() throws IOException {
- final DMNRuntime runtime =
DMNRuntimeUtil.createRuntimeWithAdditionalResources("valid_models/DMNv1_5/Importing_EmptyNamed_Model.dmn",
+ public void addIfNotPresentFalseWithHrefNamespace() throws IOException {
+
commonAddIfNotPresentFalse("valid_models/DMNv1_5/Importing_EmptyNamed_Model_With_Href_Namespace.dmn",
+
"valid_models/DMNv1_5/Imported_Model_Unamed.dmn");
+ }
+
+ @Test
+ public void addIfNotPresentFalseWithoutHrefNamespace() throws IOException {
+
commonAddIfNotPresentFalse("valid_models/DMNv1_5/Importing_EmptyNamed_Model_Without_Href_Namespace.dmn",
+
"valid_models/DMNv1_5/Imported_Model_Unamed.dmn");
+ }
+
+ private void commonIsInUnnamedImportTrue(String importingModelRef, String
importedModelRef) {
+ final DMNRuntime runtime =
DMNRuntimeUtil.createRuntimeWithAdditionalResources(importingModelRef,
this.getClass(),
-
"valid_models/DMNv1_5/Imported_Model_Unamed.dmn");
+
importedModelRef);
+
+ final DMNModel importedModel =
runtime.getModel("http://www.trisotech.com/dmn/definitions/_f27bb64b-6fc7-4e1f"
+
+
"-9848-11ba35e0df44",
+ "Imported Model");
+ assertThat(importedModel).isNotNull();
+ final DMNModelImpl importingModel = (DMNModelImpl)
runtime.getModel("http://www.trisotech" +
+
".com/dmn/definitions/_f79aa7a4" +
+
"-f9a3-410a-ac95-bea496edabgc",
+
"Importing empty-named Model");
+ assertThat(importingModel).isNotNull();
+ importedModel.getDecisions().forEach(node ->
assertTrue(isInUnnamedImport(node, importingModel)));
+ importedModel.getBusinessKnowledgeModels().forEach(node ->
assertTrue(isInUnnamedImport(node, importingModel)));
+ importedModel.getDecisionServices().forEach(node ->
assertTrue(isInUnnamedImport(node, importingModel)));
+ importedModel.getInputs().forEach(node ->
assertTrue(isInUnnamedImport(node, importingModel)));
+ importedModel.getItemDefinitions().forEach(node ->
assertTrue(isInUnnamedImport(node, importingModel)));
+ }
+
+ private void commonAddIfNotPresentFalse(String importingModelRef, String
importedModelRef) throws IOException {
+ final DMNRuntime runtime =
DMNRuntimeUtil.createRuntimeWithAdditionalResources(importingModelRef,
+
this.getClass(),
+
importedModelRef);
final DMNModelImpl importingModel =
(DMNModelImpl)runtime.getModel("http://www.trisotech.com/dmn/definitions/_f79aa7a4-f9a3-410a-ac95-bea496edabgc",
"Importing empty-named Model");
assertThat(importingModel).isNotNull();
diff --git
a/kie-dmn/kie-dmn-test-resources/src/test/resources/valid_models/DMNv1_5/Imported_Model_Unamed.dmn
b/kie-dmn/kie-dmn-test-resources/src/test/resources/valid_models/DMNv1_5/Imported_Model_Unamed.dmn
index 2c900040e2..e8a79c6e53 100644
---
a/kie-dmn/kie-dmn-test-resources/src/test/resources/valid_models/DMNv1_5/Imported_Model_Unamed.dmn
+++
b/kie-dmn/kie-dmn-test-resources/src/test/resources/valid_models/DMNv1_5/Imported_Model_Unamed.dmn
@@ -23,7 +23,11 @@
<dmn:typeRef>number</dmn:typeRef>
</dmn:itemComponent>
</dmn:itemDefinition>
-
+ <dmn:inputData id="_51190b90-924d-479b-872b-4c6f3486c2cb" name="A Person">
+ <dmn:variable id="_44a44de4-c0ab-408e-9ba9-983d8ec2f6b5"
+ name="A Person"
+ typeRef="tPerson"/>
+ </dmn:inputData>
<dmn:inputData id="_51190b90-924d-479b-872b-4c6f3486c2de" name="An Imported
Person">
<dmn:variable id="_44a44de4-c0ab-408e-9ba9-983d8ec2f6c6"
name="An Imported Person"
diff --git
a/kie-dmn/kie-dmn-test-resources/src/test/resources/valid_models/DMNv1_5/Importing_EmptyNamed_Model.dmn
b/kie-dmn/kie-dmn-test-resources/src/test/resources/valid_models/DMNv1_5/Importing_EmptyNamed_Model_With_Href_Namespace.dmn
similarity index 89%
copy from
kie-dmn/kie-dmn-test-resources/src/test/resources/valid_models/DMNv1_5/Importing_EmptyNamed_Model.dmn
copy to
kie-dmn/kie-dmn-test-resources/src/test/resources/valid_models/DMNv1_5/Importing_EmptyNamed_Model_With_Href_Namespace.dmn
index 6bcd6e1838..de77003182 100644
---
a/kie-dmn/kie-dmn-test-resources/src/test/resources/valid_models/DMNv1_5/Importing_EmptyNamed_Model.dmn
+++
b/kie-dmn/kie-dmn-test-resources/src/test/resources/valid_models/DMNv1_5/Importing_EmptyNamed_Model_With_Href_Namespace.dmn
@@ -23,17 +23,12 @@
drools:modelName="Imported Model"
triso:fileId="eyJmIjp7InNrdSI6IjEwMmM0MDQ3LTg5NjctNGI3ZS1hODgxLTBhY2ZkNWJjOTAwMiIsIm5hbWUiOiJJbXBvcnRlZCBNb2RlbCJ9fQ=="
triso:fileName="Edson Tirelli/Imported Model"/>
- <dmn:inputData id="_51190b90-924d-479b-872b-4c6f3486c2cb" name="A Person">
- <dmn:variable id="_44a44de4-c0ab-408e-9ba9-983d8ec2f6b5"
- name="A Person"
- typeRef="tPerson"/>
- </dmn:inputData>
<dmn:decision id="_bf4a9628-15ae-4887-97f2-7099426cb60f" name="Local
Greeting">
<dmn:variable id="_ecc6e0bb-a0af-4e99-aac6-5b8bed09c538"
name="Local Greeting"
typeRef="string"/>
<dmn:informationRequirement>
- <dmn:requiredInput href="#_51190b90-924d-479b-872b-4c6f3486c2cb"/>
+ <dmn:requiredInput
href="http://www.trisotech.com/dmn/definitions/_f27bb64b-6fc7-4e1f-9848-11ba35e0df44#_51190b90-924d-479b-872b-4c6f3486c2cb"/>
</dmn:informationRequirement>
<dmn:knowledgeRequirement>
<dmn:requiredKnowledge href="#_42543811-b499-4608-b784-6c6f294b1c59"/>
@@ -50,10 +45,10 @@
name="Imported Greeting"
typeRef="string"/>
<dmn:informationRequirement>
- <dmn:requiredInput href="#_51190b90-924d-479b-872b-4c6f3486c2cb"/>
+ <dmn:requiredInput
href="http://www.trisotech.com/dmn/definitions/_f27bb64b-6fc7-4e1f-9848-11ba35e0df44#_51190b90-924d-479b-872b-4c6f3486c2cb"/>
</dmn:informationRequirement>
<dmn:knowledgeRequirement>
- <dmn:requiredKnowledge href="#_32543811-b499-4608-b784-6c6f294b1c58"/>
+ <dmn:requiredKnowledge
href="http://www.trisotech.com/dmn/definitions/_f27bb64b-6fc7-4e1f-9848-11ba35e0df44#_32543811-b499-4608-b784-6c6f294b1c58"/>
</dmn:knowledgeRequirement>
<dmn:literalExpression
xmlns:triso="http://www.trisotech.com/2015/triso/modeling"
id="_d7e6836b-8491-487a-a653-5735daa85be2"
diff --git
a/kie-dmn/kie-dmn-test-resources/src/test/resources/valid_models/DMNv1_5/Importing_EmptyNamed_Model.dmn
b/kie-dmn/kie-dmn-test-resources/src/test/resources/valid_models/DMNv1_5/Importing_EmptyNamed_Model_Without_Href_Namespace.dmn
similarity index 94%
rename from
kie-dmn/kie-dmn-test-resources/src/test/resources/valid_models/DMNv1_5/Importing_EmptyNamed_Model.dmn
rename to
kie-dmn/kie-dmn-test-resources/src/test/resources/valid_models/DMNv1_5/Importing_EmptyNamed_Model_Without_Href_Namespace.dmn
index 6bcd6e1838..eb567f30bb 100644
---
a/kie-dmn/kie-dmn-test-resources/src/test/resources/valid_models/DMNv1_5/Importing_EmptyNamed_Model.dmn
+++
b/kie-dmn/kie-dmn-test-resources/src/test/resources/valid_models/DMNv1_5/Importing_EmptyNamed_Model_Without_Href_Namespace.dmn
@@ -23,11 +23,6 @@
drools:modelName="Imported Model"
triso:fileId="eyJmIjp7InNrdSI6IjEwMmM0MDQ3LTg5NjctNGI3ZS1hODgxLTBhY2ZkNWJjOTAwMiIsIm5hbWUiOiJJbXBvcnRlZCBNb2RlbCJ9fQ=="
triso:fileName="Edson Tirelli/Imported Model"/>
- <dmn:inputData id="_51190b90-924d-479b-872b-4c6f3486c2cb" name="A Person">
- <dmn:variable id="_44a44de4-c0ab-408e-9ba9-983d8ec2f6b5"
- name="A Person"
- typeRef="tPerson"/>
- </dmn:inputData>
<dmn:decision id="_bf4a9628-15ae-4887-97f2-7099426cb60f" name="Local
Greeting">
<dmn:variable id="_ecc6e0bb-a0af-4e99-aac6-5b8bed09c538"
name="Local Greeting"
diff --git
a/kie-dmn/kie-dmn-validation/src/test/java/org/kie/dmn/validation/v1_5/DMN15ValidationsTest.java
b/kie-dmn/kie-dmn-validation/src/test/java/org/kie/dmn/validation/v1_5/DMN15ValidationsTest.java
index 57a94b747a..77f7aebe50 100644
---
a/kie-dmn/kie-dmn-validation/src/test/java/org/kie/dmn/validation/v1_5/DMN15ValidationsTest.java
+++
b/kie-dmn/kie-dmn-validation/src/test/java/org/kie/dmn/validation/v1_5/DMN15ValidationsTest.java
@@ -75,14 +75,15 @@ public class DMN15ValidationsTest {
}
@Test
- public void unnamedImportValidation() {
- String importedModelFileName =
"valid_models/DMNv1_5/Imported_Model_Unamed.dmn";
- String importingModelFileName =
"valid_models/DMNv1_5/Importing_EmptyNamed_Model.dmn";
- String modelName = "Importing empty-named Model";
- String modelNamespace =
"http://www.trisotech.com/dmn/definitions/_f79aa7a4-f9a3-410a-ac95-bea496edabgc";
- validate(importedModelFileName, importingModelFileName);
- Map<String, Object> inputData = Map.of("A Person",
prototype(entry("name", "Hugh"), entry("age", 32)));
- evaluate(modelNamespace, modelName, importingModelFileName, inputData,
importedModelFileName);
+ public void unnamedImportValidationWithHrefNamespace() {
+
commonUnnamedImportValidation("valid_models/DMNv1_5/Importing_EmptyNamed_Model_With_Href_Namespace.dmn",
+
"valid_models/DMNv1_5/Imported_Model_Unamed.dmn");
+ }
+
+ @Test
+ public void unnamedImportValidationWithoutHrefNamespace() {
+
commonUnnamedImportValidation("valid_models/DMNv1_5/Importing_EmptyNamed_Model_Without_Href_Namespace.dmn",
+
"valid_models/DMNv1_5/Imported_Model_Unamed.dmn");
}
@Test
@@ -131,6 +132,14 @@ public class DMN15ValidationsTest {
evaluate(modelNamespace, modelName, modelFileName, inputData);
}
+ private void commonUnnamedImportValidation(String importingModelRef,
String importedModelRef) {
+ String modelName = "Importing empty-named Model";
+ String modelNamespace =
"http://www.trisotech.com/dmn/definitions/_f79aa7a4-f9a3-410a-ac95-bea496edabgc";
+ validate(importingModelRef, importedModelRef);
+ Map<String, Object> inputData = Map.of("A Person",
prototype(entry("name", "Hugh"), entry("age", 32)));
+ evaluate(modelNamespace, modelName, importingModelRef, inputData,
importedModelRef);
+ }
+
private void validate(String modelFileName, String... otherFileNames) {
List<String> allModelsFileNames = new ArrayList<>();
allModelsFileNames.add(modelFileName);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]