diff --git a/drools-drlonyaml-parent/drools-drlonyaml-cli-tests/pom.xml b/drools-drlonyaml-parent/drools-drlonyaml-cli-tests/pom.xml index 0ff6b0f9605..9253a801e32 100644 --- a/drools-drlonyaml-parent/drools-drlonyaml-cli-tests/pom.xml +++ b/drools-drlonyaml-parent/drools-drlonyaml-cli-tests/pom.xml @@ -18,7 +18,7 @@ under the License. --> - + 4.0.0 org.drools @@ -34,13 +34,13 @@ - org.assertj - assertj-core + org.junit.jupiter + junit-jupiter test - junit - junit + org.assertj + assertj-core test diff --git a/drools-drlonyaml-parent/drools-drlonyaml-cli-tests/src/test/java/org/drools/drlonyaml/cli/tests/ConversionsUsingCliTest.java b/drools-drlonyaml-parent/drools-drlonyaml-cli-tests/src/test/java/org/drools/drlonyaml/cli/tests/ConversionsUsingCliTest.java index d9e8ed0570d..ba58e64cf1d 100644 --- a/drools-drlonyaml-parent/drools-drlonyaml-cli-tests/src/test/java/org/drools/drlonyaml/cli/tests/ConversionsUsingCliTest.java +++ b/drools-drlonyaml-parent/drools-drlonyaml-cli-tests/src/test/java/org/drools/drlonyaml/cli/tests/ConversionsUsingCliTest.java @@ -23,7 +23,7 @@ import java.io.InputStream; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class ConversionsUsingCliTest { diff --git a/drools-drlonyaml-parent/drools-drlonyaml-integration-tests/pom.xml b/drools-drlonyaml-parent/drools-drlonyaml-integration-tests/pom.xml index d9eaa5c8b58..72e71252110 100644 --- a/drools-drlonyaml-parent/drools-drlonyaml-integration-tests/pom.xml +++ b/drools-drlonyaml-parent/drools-drlonyaml-integration-tests/pom.xml @@ -47,8 +47,8 @@ test - junit - junit + org.junit.jupiter + junit-jupiter test diff --git a/drools-drlonyaml-parent/drools-drlonyaml-integration-tests/src/test/java/org/drools/drlonyaml/integration/tests/ProgrammaticProjectTest.java b/drools-drlonyaml-parent/drools-drlonyaml-integration-tests/src/test/java/org/drools/drlonyaml/integration/tests/ProgrammaticProjectTest.java index 9496a739438..00ba840ce00 100644 --- a/drools-drlonyaml-parent/drools-drlonyaml-integration-tests/src/test/java/org/drools/drlonyaml/integration/tests/ProgrammaticProjectTest.java +++ b/drools-drlonyaml-parent/drools-drlonyaml-integration-tests/src/test/java/org/drools/drlonyaml/integration/tests/ProgrammaticProjectTest.java @@ -18,72 +18,26 @@ */ package org.drools.drlonyaml.integration.tests; -import java.io.StringReader; -import java.io.StringWriter; import java.util.ArrayList; import java.util.List; +import java.util.stream.Stream; -import org.drools.drl.ast.descr.PackageDescr; -import org.drools.drl.parser.DrlParser; -import org.drools.drlonyaml.model.DrlPackage; import org.drools.model.codegen.ExecutableModelProject; -import org.junit.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; import org.kie.api.runtime.KieSession; import org.kie.internal.utils.KieHelper; import static org.assertj.core.api.Assertions.assertThat; -import static org.drools.drlonyaml.model.Utils.getYamlMapper; public class ProgrammaticProjectTest { - @Test - public void testDrl() { - KieSession ksession = new KieHelper() - .addContent(getDrlRule(), "org/drools/drlonyaml/integration/tests/rule.drl") - .build(ExecutableModelProject.class) - .newKieSession(); - - checkKieSession(ksession); - } - - @Test - public void testYaml() { - KieSession ksession = new KieHelper() - .addContent(getYamlRule(), "org/drools/drlonyaml/integration/tests/rule.drl.yaml") - .build(ExecutableModelProject.class) - .newKieSession(); - - checkKieSession(ksession); - } - - private static void checkKieSession(KieSession ksession) { - List result = new ArrayList<>(); - ksession.setGlobal("result", result); - - ksession.insert(new Message("test")); - ksession.insert(new Message("Hello World")); - ksession.insert(10); - ksession.insert(11); - - int count = ksession.fireAllRules(); - assertThat(count).isEqualTo(1); - assertThat(result).hasSize(1); - assertThat(result.get(0)).isEqualTo("Hello World"); - } - - private String drl2yaml(String drl) { - try (StringWriter writer = new StringWriter()) { - PackageDescr pkgDescr = new DrlParser().parse(new StringReader(drl)); - DrlPackage model = DrlPackage.from(pkgDescr); - getYamlMapper().writeValue(writer, model); - return writer.toString(); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - private String getDrlRule() { - return """ + private static Stream params() { + return Stream.of( + Arguments.of("org/drools/drlonyaml/integration/tests/rule.drl", + """ package org.drools.drlonyaml.integration.tests global java.util.List result; @@ -93,25 +47,49 @@ private String getDrlRule() { $m : Message( size == $i ) then result.add( $m.getText() ); - end"""; + end"""), + + Arguments.of("org/drools/drlonyaml/integration/tests/rule.drl.yaml", + """ + name: org.drools.drlonyaml.integration.tests + globals: + - type: java.util.List + id: result + rules: + - name: R + when: + - given: Integer + as: $i + - given: Message + as: $m + having: + - size == $i + then: | + result.add( $m.getText() );""") + ); } + + @ParameterizedTest + @MethodSource("params") + public void test1(String name, String content) { + KieSession ksession = new KieHelper() + .addContent(content, name) + .build(ExecutableModelProject.class) + .newKieSession(); - private String getYamlRule() { - return """ - name: org.drools.drlonyaml.integration.tests - globals: - - type: java.util.List - id: result - rules: - - name: R - when: - - given: Integer - as: $i - - given: Message - as: $m - having: - - size == $i - then: | - result.add( $m.getText() );"""; + List result = new ArrayList<>(); + ksession.setGlobal("result", result); + + ksession.insert(new Message("test")); + ksession.insert(new Message("Hello World")); + ksession.insert(10); + ksession.insert(11); + + int count = ksession.fireAllRules(); + assertThat(count).isEqualTo(1); + assertThat(result).hasSize(1); + assertThat(result.get(0)).isEqualTo("Hello World"); } + + } diff --git a/drools-drlonyaml-parent/drools-drlonyaml-model/pom.xml b/drools-drlonyaml-parent/drools-drlonyaml-model/pom.xml index 028ef1f3813..e5c687c7c3e 100644 --- a/drools-drlonyaml-parent/drools-drlonyaml-model/pom.xml +++ b/drools-drlonyaml-parent/drools-drlonyaml-model/pom.xml @@ -18,7 +18,7 @@ under the License. --> - + 4.0.0 org.drools @@ -48,8 +48,8 @@ test - junit - junit + org.junit.jupiter + junit-jupiter test diff --git a/drools-drlonyaml-parent/drools-drlonyaml-model/src/test/java/org/drools/drlonyaml/model/SmokeTest.java b/drools-drlonyaml-parent/drools-drlonyaml-model/src/test/java/org/drools/drlonyaml/model/SmokeTest.java index 7834b23d941..72b9381c759 100644 --- a/drools-drlonyaml-parent/drools-drlonyaml-model/src/test/java/org/drools/drlonyaml/model/SmokeTest.java +++ b/drools-drlonyaml-parent/drools-drlonyaml-model/src/test/java/org/drools/drlonyaml/model/SmokeTest.java @@ -26,11 +26,12 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; import com.fasterxml.jackson.dataformat.yaml.YAMLGenerator.Feature; -import org.assertj.core.api.Assertions; import org.drools.drl.ast.descr.PackageDescr; import org.drools.drl.parser.DrlParser; -import org.junit.Ignore; -import org.junit.Test; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -45,91 +46,40 @@ public class SmokeTest { YAMLFactory yamlFactory = YAMLFactory.builder().enable(Feature.MINIMIZE_QUOTES).build(); mapper = new ObjectMapper(yamlFactory); } - - private void assertDrlToYamlAndBack(String filename) { - try { - String content = Files.readString(Paths.get(this.getClass().getResource(filename).toURI())); - assertThat(content).as("Failed to read test resource").isNotNull(); - - PackageDescr pkgDescr = drlParser.parse(new StringReader(content)); - assertThat(pkgDescr).as("Failed to parse DRL as a PackageDescr").isNotNull(); - - DrlPackage model = DrlPackage.from(pkgDescr); - assertThat(model).as("Failed to generate from a PackageDescr a valid model").isNotNull(); - - StringWriter writer = new StringWriter(); - mapper.writeValue(writer, model); - final String yaml = writer.toString(); - writer.close(); - LOG.debug("{}", yaml); - assertThat(yaml).as("resulting YAML shall not be null nor empty").isNotNull().isNotEmpty(); - - final DrlPackage deserPackage = mapper.readValue(yaml, DrlPackage.class); - assertThat(deserPackage).usingRecursiveComparison().isEqualTo(model); - } catch (Exception e) { - Assertions.fail("Failed to roundtrip from DRL to YAML and back to YAML", e); - } - } - - @Test - public void smokeTestFromDRL1() { - String filename = "/smoketests/smoke1.drl.txt"; - assertDrlToYamlAndBack(filename); - } - - @Test - public void smokeTestFromDRL2() { - String filename = "/smoketests/smoke2.drl.txt"; - assertDrlToYamlAndBack(filename); - } - - @Test - public void smokeTestFromDRL3() { - String filename = "/smoketests/smoke3.drl.txt"; - assertDrlToYamlAndBack(filename); - } - - @Test - public void smokeTestFromDRL4() { - String filename = "/smoketests/smoke4.drl.txt"; - assertDrlToYamlAndBack(filename); - } - - @Test - public void smokeTestFromDRL5() { - String filename = "/smoketests/smoke5.drl.txt"; - assertDrlToYamlAndBack(filename); - } - - @Test - public void smokeTestFromDRL6() { - String filename = "/smoketests/smoke6.drl.txt"; - assertDrlToYamlAndBack(filename); - } - - @Test - public void smokeTestFromDRL7() { - String filename = "/smoketests/smoke7.drl.txt"; - assertDrlToYamlAndBack(filename); - } - - @Test - public void smokeTestFromDRL8() { - String filename = "/smoketests/smoke8.drl.txt"; - assertDrlToYamlAndBack(filename); - } - @Test - public void smokeTestFromDRL9() { - String filename = "/smoketests/smoke9.drl.txt"; - assertDrlToYamlAndBack(filename); + @ParameterizedTest + @ValueSource(strings = {"/smoketests/smoke1.drl.txt", + "/smoketests/smoke2.drl.txt", + "/smoketests/smoke3.drl.txt", + "/smoketests/smoke4.drl.txt", + "/smoketests/smoke5.drl.txt", + "/smoketests/smoke6.drl.txt", + "/smoketests/smoke7.drl.txt", + "/smoketests/smoke8.drl.txt", + "/smoketests/smoke9.drl.txt", + "/smoketests/smoke10.drl.txt", + "/smoketests/ruleunit.drl.txt"}) + public void smokeTestFromDrl(String filename ) throws Exception { + String content = Files.readString(Paths.get(this.getClass().getResource(filename).toURI())); + assertThat(content).as("Failed to read test resource").isNotNull(); + + PackageDescr pkgDescr = drlParser.parse(new StringReader(content)); + assertThat(pkgDescr).as("Failed to parse DRL as a PackageDescr").isNotNull(); + + DrlPackage model = DrlPackage.from(pkgDescr); + assertThat(model).as("Failed to generate from a PackageDescr a valid model").isNotNull(); + + StringWriter writer = new StringWriter(); + mapper.writeValue(writer, model); + final String yaml = writer.toString(); + writer.close(); + LOG.debug("{}", yaml); + assertThat(yaml).as("resulting YAML shall not be null nor empty").isNotNull().isNotEmpty(); + + final DrlPackage deserPackage = mapper.readValue(yaml, DrlPackage.class); + assertThat(deserPackage).usingRecursiveComparison().isEqualTo(model); } - @Test - public void smokeTestFromDRL10() { - String filename = "/smoketests/smoke10.drl.txt"; - assertDrlToYamlAndBack(filename); - } @Test public void smokeTestFromYAML1() throws Exception { @@ -138,17 +88,11 @@ public void smokeTestFromYAML1() throws Exception { LOG.debug("{}", result); } - @Ignore("additional RHS types not supported at the moment.") + @Disabled("additional RHS types not supported at the moment.") @Test public void smokeTestFromYAML2() throws Exception { String content = Files.readString(Paths.get(this.getClass().getResource("/smoketests/yamlfirst_smoke2.yml").toURI())); DrlPackage result = mapper.readValue(content, DrlPackage.class); LOG.debug("{}", result); } - - @Test - public void smokeTestWithRuleUnit() { - String filename = "/smoketests/ruleunit.drl.txt"; - assertDrlToYamlAndBack(filename); - } } diff --git a/drools-drlonyaml-parent/drools-drlonyaml-todrl/pom.xml b/drools-drlonyaml-parent/drools-drlonyaml-todrl/pom.xml index 809af59c402..ee546686cfa 100644 --- a/drools-drlonyaml-parent/drools-drlonyaml-todrl/pom.xml +++ b/drools-drlonyaml-parent/drools-drlonyaml-todrl/pom.xml @@ -18,7 +18,7 @@ under the License. --> - + 4.0.0 org.drools @@ -51,8 +51,8 @@ test - junit - junit + org.junit.jupiter + junit-jupiter test diff --git a/drools-drlonyaml-parent/drools-drlonyaml-todrl/src/test/java/org/drools/drlonyaml/todrl/YAMLtoDRLTest.java b/drools-drlonyaml-parent/drools-drlonyaml-todrl/src/test/java/org/drools/drlonyaml/todrl/YAMLtoDRLTest.java index b412c07a3a1..ebdf16d646f 100644 --- a/drools-drlonyaml-parent/drools-drlonyaml-todrl/src/test/java/org/drools/drlonyaml/todrl/YAMLtoDRLTest.java +++ b/drools-drlonyaml-parent/drools-drlonyaml-todrl/src/test/java/org/drools/drlonyaml/todrl/YAMLtoDRLTest.java @@ -25,11 +25,11 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; import com.fasterxml.jackson.dataformat.yaml.YAMLGenerator.Feature; -import org.assertj.core.api.Assertions; import org.drools.drl.ast.descr.PackageDescr; import org.drools.drl.parser.DrlParser; import org.drools.drlonyaml.model.DrlPackage; -import org.junit.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -46,77 +46,30 @@ public class YAMLtoDRLTest { mapper = new ObjectMapper(yamlFactory); } - private void assertDumpingYAMLtoDRLisValid(String filename) { - try { - final String yamlText = Files.readString(Paths.get(YAMLtoDRLTest.class.getResource(filename).toURI())); - assertThat(yamlText).as("Failed to read test resource").isNotNull(); - - DrlPackage readValue = mapper.readValue(yamlText, DrlPackage.class); - assertThat(readValue).as("Failed to parse YAML as model").isNotNull(); - - final String drlText = YAMLtoDrlDumper.dumpDRL(readValue); - LOG.debug(drlText); - assertThat(drlText).as("result of DRL dumper shall not be null or empty").isNotNull().isNotEmpty(); - - PackageDescr parseResult = drlParser.parse(new StringReader(drlText)); - assertThat(parseResult).as("The result of DRL dumper must be syntactically valid DRL").isNotNull(); - } catch (Exception e) { - Assertions.fail("Failed to generate a valid DRL while processing YAML", e); - } + @ParameterizedTest + @ValueSource(strings = {"/smoketests/yaml2.yml", + "/smoketests/yaml3.yml", + "/smoketests/yaml4.yml", + "/smoketests/yaml5.yml", + "/smoketests/yaml6.yml", + "/smoketests/yaml7.yml", + "/smoketests/yaml8.yml", + "/smoketests/yaml9.yml", + "/smoketests/yaml10.yml", + "/smoketests/yaml11.yml", + "/smoketests/ruleunit.yml"}) + public void smokeTestFromYAML2(String filename) throws Exception { + final String yamlText = Files.readString(Paths.get(YAMLtoDRLTest.class.getResource(filename).toURI())); + assertThat(yamlText).as("Failed to read test resource").isNotNull(); + + DrlPackage readValue = mapper.readValue(yamlText, DrlPackage.class); + assertThat(readValue).as("Failed to parse YAML as model").isNotNull(); + + final String drlText = YAMLtoDrlDumper.dumpDRL(readValue); + LOG.debug(drlText); + assertThat(drlText).as("result of DRL dumper shall not be null or empty").isNotNull().isNotEmpty(); + + PackageDescr parseResult = drlParser.parse(new StringReader(drlText)); + assertThat(parseResult).as("The result of DRL dumper must be syntactically valid DRL").isNotNull(); } - - @Test - public void smokeTestFromYAML2() { - assertDumpingYAMLtoDRLisValid("/smoketests/yaml2.yml"); - } - - @Test - public void smokeTestFromYAML3() { - assertDumpingYAMLtoDRLisValid("/smoketests/yaml3.yml"); - } - - @Test - public void smokeTestFromYAML4() { - assertDumpingYAMLtoDRLisValid("/smoketests/yaml4.yml"); - } - - @Test - public void smokeTestFromYAML5() { - assertDumpingYAMLtoDRLisValid("/smoketests/yaml5.yml"); - } - - @Test - public void smokeTestFromYAML6() { - assertDumpingYAMLtoDRLisValid("/smoketests/yaml6.yml"); - } - - @Test - public void smokeTestFromYAML7() { - assertDumpingYAMLtoDRLisValid("/smoketests/yaml7.yml"); - } - - @Test - public void smokeTestFromYAML8() { - assertDumpingYAMLtoDRLisValid("/smoketests/yaml8.yml"); - } - - @Test - public void smokeTestFromYAML9() { - assertDumpingYAMLtoDRLisValid("/smoketests/yaml9.yml"); - } - - @Test - public void smokeTestFromYAML10() { - assertDumpingYAMLtoDRLisValid("/smoketests/yaml10.yml"); - } - - @Test - public void smokeTestFromYAML11() { - assertDumpingYAMLtoDRLisValid("/smoketests/yaml11.yml"); - } - - @Test - public void smokeTestRuleUnit() { - assertDumpingYAMLtoDRLisValid("/smoketests/ruleunit.yml"); - } -} + }