gitgabrio commented on code in PR #6267:
URL: 
https://github.com/apache/incubator-kie-drools/pull/6267#discussion_r1986941690


##########
kie-dmn/kie-dmn-core/src/test/java/org/kie/dmn/core/compiler/DMNCompilerImplTest.java:
##########
@@ -70,10 +83,192 @@ void getRootElement() {
 
         InformationRequirement informationRequirement = new 
TInformationRequirement();
         elementReference.setParent(informationRequirement);
-        assertThatExceptionOfType(RuntimeException.class).isThrownBy(() -> 
DMNCompilerImpl.getRootElement(elementReference));
-
+        assertThatExceptionOfType(RuntimeException.class).isThrownBy(
+                () -> 
DMNCompilerImpl.getRootElement(elementReference)).withMessageContaining
+                ("Failed to get Definitions parent for 
org.kie.dmn.model.v1_5");
         informationRequirement.setParent(parent);
         retrieved = DMNCompilerImpl.getRootElement(elementReference);
         assertThat(retrieved).isNotNull().isEqualTo(parent);
     }
-}
\ No newline at end of file
+
+    @Test
+    void compile() {
+        List<DMNModel> dmnModels = new ArrayList<>();
+        String nameSpace = 
"http://www.trisotech.com/dmn/definitions/_f27bb64b-6fc7-4e1f-9848-11ba35e0df44";;
+        Resource resource = new ClassPathResource( 
"valid_models/DMNv1_5/Imported_Model_Unamed.dmn",
+                this.getClass());
+        DMNModel importedModel = dMNCompiler.compile( resource, dmnModels);
+        assertThat(importedModel).isNotNull();
+        
assertThat(importedModel.getNamespace()).isNotNull().isEqualTo(nameSpace);
+        assertThat(importedModel.getMessages()).isEmpty();
+    }
+
+    @Test
+    void compileWithUnknownTypeModelImports() {
+        List<DMNModel> dmnModels = new ArrayList<>();
+        String nameSpace = 
"http://www.trisotech.com/dmn/definitions/_f27bb64b-6fc7-4e1f-9848-11ba35e0df44";;
+        String modelName = "Imported Model";
+        String importType = 
String.valueOf(ImportDMNResolverUtil.ImportType.UNKNOWN);
+        Resource resource = new ClassPathResource( 
"valid_models/DMNv1_5/Imported_Model_Unamed.dmn",
+                this.getClass());
+        DMNModel model = dMNCompiler.compile( resource, dmnModels);
+        assertThat(model).isNotNull();
+        Definitions dmnDefn = model.getDefinitions();
+        addImport(dmnDefn, importType, nameSpace, modelName);
+        dmnModels.add(model);
+        model = dMNCompiler.compile(dmnDefn, resource, dmnModels);
+        assertThat(model).isNotNull();
+        assertThat(model.getName()).isNotNull().isEqualTo(modelName);
+        assertThat(model.getMessages()).isNotEmpty();

Review Comment:
   This could be removed (implemented by following one)



##########
kie-dmn/kie-dmn-core/src/test/java/org/kie/dmn/core/compiler/DMNCompilerImplTest.java:
##########
@@ -70,10 +83,192 @@ void getRootElement() {
 
         InformationRequirement informationRequirement = new 
TInformationRequirement();
         elementReference.setParent(informationRequirement);
-        assertThatExceptionOfType(RuntimeException.class).isThrownBy(() -> 
DMNCompilerImpl.getRootElement(elementReference));
-
+        assertThatExceptionOfType(RuntimeException.class).isThrownBy(
+                () -> 
DMNCompilerImpl.getRootElement(elementReference)).withMessageContaining
+                ("Failed to get Definitions parent for 
org.kie.dmn.model.v1_5");
         informationRequirement.setParent(parent);
         retrieved = DMNCompilerImpl.getRootElement(elementReference);
         assertThat(retrieved).isNotNull().isEqualTo(parent);
     }
-}
\ No newline at end of file
+
+    @Test
+    void compile() {
+        List<DMNModel> dmnModels = new ArrayList<>();
+        String nameSpace = 
"http://www.trisotech.com/dmn/definitions/_f27bb64b-6fc7-4e1f-9848-11ba35e0df44";;
+        Resource resource = new ClassPathResource( 
"valid_models/DMNv1_5/Imported_Model_Unamed.dmn",
+                this.getClass());
+        DMNModel importedModel = dMNCompiler.compile( resource, dmnModels);
+        assertThat(importedModel).isNotNull();
+        
assertThat(importedModel.getNamespace()).isNotNull().isEqualTo(nameSpace);
+        assertThat(importedModel.getMessages()).isEmpty();
+    }
+
+    @Test
+    void compileWithUnknownTypeModelImports() {
+        List<DMNModel> dmnModels = new ArrayList<>();
+        String nameSpace = 
"http://www.trisotech.com/dmn/definitions/_f27bb64b-6fc7-4e1f-9848-11ba35e0df44";;
+        String modelName = "Imported Model";
+        String importType = 
String.valueOf(ImportDMNResolverUtil.ImportType.UNKNOWN);
+        Resource resource = new ClassPathResource( 
"valid_models/DMNv1_5/Imported_Model_Unamed.dmn",
+                this.getClass());
+        DMNModel model = dMNCompiler.compile( resource, dmnModels);
+        assertThat(model).isNotNull();
+        Definitions dmnDefn = model.getDefinitions();
+        addImport(dmnDefn, importType, nameSpace, modelName);
+        dmnModels.add(model);
+        model = dMNCompiler.compile(dmnDefn, resource, dmnModels);
+        assertThat(model).isNotNull();
+        assertThat(model.getName()).isNotNull().isEqualTo(modelName);
+        assertThat(model.getMessages()).isNotEmpty();
+        assertThat(model.getMessages().size()).isEqualTo(1);
+        assertThat(model.getMessages().get(0).getText()).isEqualTo("DMN: 
Import type unknown: 'UNKNOWN'. (Invalid FEEL syntax on the referenced 
expression) ");
+
+    }
+
+    @Test
+    void compileWithImportingDmnModel() {
+        List<DMNModel> dmnModels = new ArrayList<>();
+        Resource resource = new ClassPathResource( 
"valid_models/DMNv1_5/Imported_Model_Unamed.dmn",
+                this.getClass());
+        DMNModel importedModel = dMNCompiler.compile( resource, dmnModels);
+        assertThat(importedModel).isNotNull();
+        dmnModels.add(importedModel);
+
+        //imported model - Importing_Named_Model.dmn
+        String nameSpace = 
"http://www.trisotech.com/dmn/definitions/_f79aa7a4-f9a3-410a-ac95-bea496edabgc";;
+        resource = new ClassPathResource( 
"valid_models/DMNv1_5/Importing_Named_Model.dmn",
+                this.getClass());
+
+        DMNModel importingModel = dMNCompiler.compile(resource, dmnModels);
+        assertThat(importingModel).isNotNull();
+        
assertThat(importingModel.getNamespace()).isNotNull().isEqualTo(nameSpace);
+        assertThat(importingModel.getMessages()).isEmpty();
+    }
+
+    @Test
+    void compileImportingModelWithoutImportedModel()  {
+        List<DMNModel> dmnModels = new ArrayList<>();
+        String modelName = "Importing named Model";
+        Resource resource = new ClassPathResource( 
"valid_models/DMNv1_5/Importing_Named_Model.dmn",
+                this.getClass());
+        DMNModel model = dMNCompiler.compile( resource, dmnModels);
+        assertThat(model).isNotNull();
+        assertThat(model.getName()).isNotNull().isEqualTo(modelName);
+
+        Definitions dmnDefn = model.getDefinitions();
+        dmnModels.add(model);
+        model = dMNCompiler.compile(dmnDefn, resource, dmnModels);
+        assertThat(model).isNotNull();
+        assertThat(model.getName()).isNotNull().isEqualTo(modelName);
+        assertThat(model.getMessages()).isNotEmpty();

Review Comment:
   This could be removed (implemented by following one)



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to