yesamer commented on code in PR #6085:
URL:
https://github.com/apache/incubator-kie-drools/pull/6085#discussion_r1762801851
##########
kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/runtime/functions/MatchesFunctionTest.java:
##########
@@ -19,116 +19,146 @@
package org.kie.dmn.feel.runtime.functions;
import org.junit.jupiter.api.Test;
-import org.mockito.MockedStatic;
-import java.security.InvalidParameterException;
-import java.util.regex.PatternSyntaxException;
-
-import static
org.assertj.core.api.AssertionsForClassTypes.assertThatExceptionOfType;
-import static
org.assertj.core.api.AssertionsForClassTypes.assertThatNoException;
-import static org.mockito.Mockito.*;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.MethodSource;
+import org.kie.dmn.feel.runtime.events.InvalidParametersEvent;
class MatchesFunctionTest {
- @Test
- void invokeNull() {
-
assertThatExceptionOfType(InvalidParameterException.class).isThrownBy(() ->
MatchesFunction.matchFunctionWithFlags(null, null, null));
-
assertThatExceptionOfType(InvalidParameterException.class).isThrownBy(() ->
MatchesFunction.matchFunctionWithFlags(null, "test", null));
-
assertThatExceptionOfType(InvalidParameterException.class).isThrownBy(() ->
MatchesFunction.matchFunctionWithFlags("test", null, null));
+ private static final MatchesFunction matchesFunction =
MatchesFunction.INSTANCE;
+
+ @ParameterizedTest
+ @MethodSource("invokeNullTestData")
+ void invokeNullTest(String input, String pattern, Class<?>
expectedErrorEventClass) {
+ FunctionTestUtil.assertResultError(matchesFunction.invoke(input,
pattern), expectedErrorEventClass);
}
- @Test
- void invokeUnsupportedFlags() {
-
assertThatExceptionOfType(IllegalArgumentException.class).isThrownBy(() ->
MatchesFunction.matchFunctionWithFlags("foobar", "fo.bar", "g"));
-
assertThatExceptionOfType(IllegalArgumentException.class).isThrownBy(() ->
MatchesFunction.matchFunctionWithFlags("abracadabra", "bra", "p"));
-
assertThatExceptionOfType(IllegalArgumentException.class).isThrownBy(() ->
MatchesFunction.matchFunctionWithFlags("abracadabra", "bra", "X"));
-
assertThatExceptionOfType(IllegalArgumentException.class).isThrownBy(() ->
MatchesFunction.matchFunctionWithFlags("abracadabra", "bra", " "));
-
assertThatExceptionOfType(IllegalArgumentException.class).isThrownBy(() ->
MatchesFunction.matchFunctionWithFlags("abracadabra", "bra", "iU"));
+ private static Object[][] invokeNullTestData() {
+ return new Object[][] {
+ { null, null, InvalidParametersEvent.class },
+ { null, "test", InvalidParametersEvent.class },
+ { "test", null, InvalidParametersEvent.class },
+ };
}
- @Test
- void invokeWithoutFlagsMatch() {
-
FunctionTestUtil.assertResult(MatchesFunction.matchFunctionWithFlags("test",
"test",null), true);
-
FunctionTestUtil.assertResult(MatchesFunction.matchFunctionWithFlags("foobar",
"^fo*b",null), true);
-
FunctionTestUtil.assertResult(MatchesFunction.matchFunctionWithFlags("abracadabra",
"bra", ""), true);
-
FunctionTestUtil.assertResult(MatchesFunction.matchFunctionWithFlags("abracadabra",
"bra",null), true);
-
FunctionTestUtil.assertResult(MatchesFunction.matchFunctionWithFlags("(?xi)[hello
world()]", "hello",null), true);
+ @ParameterizedTest
+ @MethodSource("invokeUnsupportedFlagsTestData")
+ void invokeUnsupportedFlagsTest(String input, String pattern, String
flags, Class<?> expectedErrorEventClass) {
+ FunctionTestUtil.assertResultError(matchesFunction.invoke(input,
pattern, flags), expectedErrorEventClass);
+ }
+
+ private static Object[][] invokeUnsupportedFlagsTestData() {
+ return new Object[][] {
+ { "foobar", "fo.bar", "g", InvalidParametersEvent.class },
+ { "abracadabra", "bra", "p", InvalidParametersEvent.class },
+ { "abracadabra", "bra", "X", InvalidParametersEvent.class },
+ { "abracadabra", "bra", "iU", InvalidParametersEvent.class },
+ { "abracadabra", "bra", "iU asd", InvalidParametersEvent.class
},
+ };
}
- @Test
- void invokeWithoutFlagsNotMatch() {
-
FunctionTestUtil.assertResult(MatchesFunction.matchFunctionWithFlags("test",
"testt",null), false);
-
FunctionTestUtil.assertResult(MatchesFunction.matchFunctionWithFlags("foobar",
"^fo*bb",null), false);
-
FunctionTestUtil.assertResult(MatchesFunction.matchFunctionWithFlags("fo\nbar",
"fo.bar",null), false);
-
FunctionTestUtil.assertResult(MatchesFunction.matchFunctionWithFlags("h",
"(.)\3",null), false);
-
FunctionTestUtil.assertResult(MatchesFunction.matchFunctionWithFlags("h",
"(.)\2",null), false);
-
FunctionTestUtil.assertResult(MatchesFunction.matchFunctionWithFlags("input",
"\3",null), false);
-
FunctionTestUtil.assertResult(MatchesFunction.matchFunctionWithFlags("fo\nbar",
"(?iU)(?iU)(ab)[|cd]",null), false);
-
FunctionTestUtil.assertResult(MatchesFunction.matchFunctionWithFlags("fo\nbar",
"(?x)(?i)hello world","i"), false);
-
FunctionTestUtil.assertResult(MatchesFunction.matchFunctionWithFlags("fo\nbar",
"(?xi)hello world",null), false);
+ @ParameterizedTest
+ @MethodSource("invokeWithoutFlagsMatchTestData")
+ void invokeWithoutFlagsMatchTest(String input, String pattern, Boolean
expectedResult) {
+ FunctionTestUtil.assertResult(matchesFunction.invoke(input, pattern),
expectedResult);
}
- @Test
- void invokeWithFlagDotAll() {
-
FunctionTestUtil.assertResult(MatchesFunction.matchFunctionWithFlags("fo\nbar",
"fo.bar", "s"), true);
+ private static Object[][] invokeWithoutFlagsMatchTestData() {
+ return new Object[][] {
+ { "test", "test", true },
+ { "foobar", "^fo*b", true },
+ { "abracadabra", "bra", true },
+ { "abracadabra", "bra", true },
+ { "(?xi)[hello world()]", "hello", true }
+ };
}
- @Test
- void invokeWithFlagMultiline() {
-
FunctionTestUtil.assertResult(MatchesFunction.matchFunctionWithFlags("fo\nbar",
"^bar", "m"), true);
+ @ParameterizedTest
+ @MethodSource("invokeNullOrEmptyFlagsMatchTestData")
+ void invokeNullOrEmptyFlagsMatchTest(String input, String pattern, String
flags, Boolean expectedResult) {
+ FunctionTestUtil.assertResult(matchesFunction.invoke(input, pattern,
flags), expectedResult);
}
- @Test
- void invokeWithFlagCaseInsensitive() {
-
FunctionTestUtil.assertResult(MatchesFunction.matchFunctionWithFlags("foobar",
"^Fo*bar", "i"), true);
-
FunctionTestUtil.assertResult(MatchesFunction.matchFunctionWithFlags("foobar",
"^Fo*bar", "i"), true);
-
FunctionTestUtil.assertResult(MatchesFunction.matchFunctionWithFlags("\u212A",
"k","i"), true);
-
FunctionTestUtil.assertResult(MatchesFunction.matchFunctionWithFlags("\u212A",
"K","i"), true);
+ private static Object[][] invokeNullOrEmptyFlagsMatchTestData() {
+ return new Object[][] {
+ { "test", "test", null, true },
+ { "foobar", "^fo*b", null, true },
+ { "abracadabra", "bra", null, true },
+ { "abracadabra", "bra", "", true },
+ { "(?xi)[hello world()]", "hello", null, true }
+ };
+ }
+
+ @ParameterizedTest
+ @MethodSource("invokeInvalidRegexTestData")
+ void invokeInvalidRegexTest(String input, String pattern, String flags,
Class<?> expectedErrorEventClass) {
Review Comment:
Done
##########
kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/runtime/functions/ReplaceFunctionTest.java:
##########
@@ -19,62 +19,88 @@
package org.kie.dmn.feel.runtime.functions;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.MethodSource;
import org.kie.dmn.feel.runtime.events.InvalidParametersEvent;
class ReplaceFunctionTest {
private static final ReplaceFunction replaceFunction =
ReplaceFunction.INSTANCE;
- @Test
- void invokeNull() {
- FunctionTestUtil.assertResultError(replaceFunction.invoke(null, null,
null), InvalidParametersEvent.class);
-
FunctionTestUtil.assertResultError(replaceFunction.invoke("testString", null,
null),
- InvalidParametersEvent.class);
-
FunctionTestUtil.assertResultError(replaceFunction.invoke("testString", "test",
null),
- InvalidParametersEvent.class);
- FunctionTestUtil.assertResultError(replaceFunction.invoke(null,
"test", null), InvalidParametersEvent.class);
- FunctionTestUtil.assertResultError(replaceFunction.invoke(null,
"test", "ttt"), InvalidParametersEvent.class);
- FunctionTestUtil.assertResultError(replaceFunction.invoke(null, null,
"ttt"), InvalidParametersEvent.class);
+ @ParameterizedTest
+ @MethodSource("invokeNullTestData")
+ void invokeNullTest(String input, String pattern, String replacement,
Class<?> expectedErrorEventClass) {
+ FunctionTestUtil.assertResultError(replaceFunction.invoke(input,
pattern, replacement), expectedErrorEventClass);
}
- @Test
- void invokeNullWithFlags() {
- FunctionTestUtil.assertResultError(replaceFunction.invoke(null, null,
null, null),
- InvalidParametersEvent.class);
-
FunctionTestUtil.assertResultError(replaceFunction.invoke("testString", null,
null, null),
- InvalidParametersEvent.class);
-
FunctionTestUtil.assertResultError(replaceFunction.invoke("testString", "test",
null, null),
- InvalidParametersEvent.class);
- FunctionTestUtil.assertResultError(replaceFunction.invoke(null,
"test", null, null),
- InvalidParametersEvent.class);
- FunctionTestUtil.assertResultError(replaceFunction.invoke(null,
"test", "ttt", null),
- InvalidParametersEvent.class);
- FunctionTestUtil.assertResultError(replaceFunction.invoke(null, null,
"ttt", null),
- InvalidParametersEvent.class);
-
- FunctionTestUtil.assertResultError(replaceFunction.invoke(null, null,
null, "s"), InvalidParametersEvent.class);
-
FunctionTestUtil.assertResultError(replaceFunction.invoke("testString", null,
null, "s"),
- InvalidParametersEvent.class);
-
FunctionTestUtil.assertResultError(replaceFunction.invoke("testString", "test",
null, "s"),
- InvalidParametersEvent.class);
- FunctionTestUtil.assertResultError(replaceFunction.invoke(null,
"test", null, "s"),
- InvalidParametersEvent.class);
- FunctionTestUtil.assertResultError(replaceFunction.invoke(null,
"test", "ttt", "s"),
- InvalidParametersEvent.class);
- FunctionTestUtil.assertResultError(replaceFunction.invoke(null, null,
"ttt", "s"),
- InvalidParametersEvent.class);
+ private static Object[][] invokeNullTestData() {
+ return new Object[][] {
+ { null, null, null, InvalidParametersEvent.class },
+ { "testString", null, null, InvalidParametersEvent.class },
+ { "testString", "test", null, InvalidParametersEvent.class },
+ { null, "test", null, InvalidParametersEvent.class },
+ { null, "test", "ttt", InvalidParametersEvent.class },
+ { null, null, "ttt", InvalidParametersEvent.class }
+ };
}
- @Test
- void invokeWithoutFlagsPatternMatches() {
- FunctionTestUtil.assertResult(replaceFunction.invoke("testString",
"^test", "ttt"), "tttString");
- FunctionTestUtil.assertResult(replaceFunction.invoke("testStringtest",
"^test", "ttt"), "tttStringtest");
+ @ParameterizedTest
+ @MethodSource("invokeNullWithFlagsTestData")
+ void invokeNullWithFlagsTest(String input, String pattern, String
replacement, String flags, Class<?> expectedErrorEventClass) {
+ FunctionTestUtil.assertResultError(replaceFunction.invoke(input,
pattern, replacement, flags), expectedErrorEventClass);
+ }
+
+ private static Object[][] invokeNullWithFlagsTestData() {
+ return new Object[][] {
+ { null, null, null, null, InvalidParametersEvent.class },
+ { "testString", null, null, null, InvalidParametersEvent.class
},
+ { "testString", "test", null, null,
InvalidParametersEvent.class },
+ { null, "test", null, null, InvalidParametersEvent.class },
+ { null, "test", "ttt", null, InvalidParametersEvent.class },
+ { null, null, "ttt", null, InvalidParametersEvent.class },
+ { null, null, null, "s", InvalidParametersEvent.class },
+ { "testString", null, null, "s", InvalidParametersEvent.class
},
+ { "testString", "test", null, "s",
InvalidParametersEvent.class },
+ { null, "test", null, "s", InvalidParametersEvent.class },
+ { null, "test", "ttt", "s", InvalidParametersEvent.class },
+ { null, null, "ttt", "s", InvalidParametersEvent.class },
+ };
+ }
+
+ @ParameterizedTest
+ @MethodSource("invokeUnsupportedFlagsTestData")
+ void invokeUnsupportedFlagsTest(String input, String pattern, String
replacement, String flags, Class<?> expectedErrorEventClass) {
Review Comment:
Done
--
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]