33import org .junit .jupiter .api .Assertions ;
44import org .junit .jupiter .api .Test ;
55
6+ import java .util .List ;
7+ import java .util .Map ;
8+
69public class RegexTest {
710 @ Test
811 public void testRegex () {
@@ -19,4 +22,36 @@ public void testEvalRegex() {
1922 String expected = "^test.*$" ;
2023 Assertions .assertEquals (expected , evaluate .toString ());
2124 }
25+
26+ @ Test
27+ public void testEvalRegexCheckAnswerData () {
28+ var expression = Jsonata .jsonata (
29+ "(\n " +
30+ " $matcher := $eval('/l/');\n " +
31+ " ('Hello World' ~> $matcher);\n " +
32+ ")"
33+ );
34+ Map <String , Object > evaluate = (Map <String , Object >)(expression .evaluate (null ));
35+ Assertions .assertEquals ("l" , evaluate .get ("match" ));
36+ Assertions .assertEquals (2 , evaluate .get ("start" ));
37+ Assertions .assertEquals (3 , evaluate .get ("end" ));
38+ Assertions .assertEquals (List .of ("l" ), evaluate .get ("groups" ));
39+ Assertions .assertInstanceOf (Jsonata .Fn0 .class , evaluate .get ("next" ));
40+ }
41+
42+ @ Test
43+ public void testEvalRegexCallNextAndCheckResult () {
44+ var expression = Jsonata .jsonata (
45+ "(\n " +
46+ " $matcher := $eval('/l/');\n " +
47+ " ('Hello World' ~> $matcher).next();\n " +
48+ ")"
49+ );
50+ Map <String , Object > evaluate = (Map <String , Object >)(expression .evaluate (null ));
51+ Assertions .assertEquals ("l" , evaluate .get ("match" ));
52+ Assertions .assertEquals (3 , evaluate .get ("start" ));
53+ Assertions .assertEquals (4 , evaluate .get ("end" ));
54+ Assertions .assertEquals (List .of ("l" ), evaluate .get ("groups" ));
55+ Assertions .assertInstanceOf (Jsonata .Fn0 .class , evaluate .get ("next" ));
56+ }
2257}
0 commit comments