From 7b2300d1fd7b01e959931f5d09354368fb9263fb Mon Sep 17 00:00:00 2001 From: sw-joelmut Date: Mon, 25 Jul 2022 14:09:12 -0300 Subject: [PATCH] Update IsMatch empty string values --- .../BuiltinFunctions/IsMatch.cs | 19 ++++--------------- .../ExpressionParserTests.cs | 2 ++ 2 files changed, 6 insertions(+), 15 deletions(-) diff --git a/libraries/AdaptiveExpressions/BuiltinFunctions/IsMatch.cs b/libraries/AdaptiveExpressions/BuiltinFunctions/IsMatch.cs index c8a4dc428f..162660f39b 100644 --- a/libraries/AdaptiveExpressions/BuiltinFunctions/IsMatch.cs +++ b/libraries/AdaptiveExpressions/BuiltinFunctions/IsMatch.cs @@ -21,22 +21,11 @@ private static EvaluateExpressionDelegate Evaluator() return FunctionUtils.ApplyWithError( args => { - var value = false; - string error = null; + var regex = CommonRegex.CreateRegex(args[1].ToString()); + var inputString = args[0]?.ToString() ?? string.Empty; + var value = regex.IsMatch(inputString); - string inputString = args[0]?.ToString(); - if (string.IsNullOrEmpty(inputString)) - { - value = false; - error = "regular expression is empty."; - } - else - { - var regex = CommonRegex.CreateRegex(args[1].ToString()); - value = regex.IsMatch(inputString); - } - - return (value, error); + return (value, null); }, FunctionUtils.VerifyStringOrNull); } diff --git a/tests/AdaptiveExpressions.Tests/ExpressionParserTests.cs b/tests/AdaptiveExpressions.Tests/ExpressionParserTests.cs index b33267a716..c09cd45f2a 100644 --- a/tests/AdaptiveExpressions.Tests/ExpressionParserTests.cs +++ b/tests/AdaptiveExpressions.Tests/ExpressionParserTests.cs @@ -1150,6 +1150,8 @@ public class ExpressionParserTests Test(@"isMatch('1', '\\d{1}')", true), // "\d" (match [0-9]) Test(@"isMatch('12.5', '[0-9]+(\\.5)')", true), // "\." (match .) Test(@"isMatch('12x5', '[0-9]+(\\.5)')", false), // "\." (match .) + Test("isMatch('', '([0-9])')", false), // empty string + Test("isMatch(nullObj, '([0-9])')", false), // null object #endregion #region type checking