forked from dashjoin/jsonata-java
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathRegexTest.java
More file actions
57 lines (51 loc) · 2.09 KB
/
RegexTest.java
File metadata and controls
57 lines (51 loc) · 2.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package com.dashjoin.jsonata;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import java.util.List;
import java.util.Map;
public class RegexTest {
@Test
public void testRegex() {
var expression = Jsonata.jsonata("/^test.*$/");
Object evaluate = expression.evaluate(null);
String expected = "^test.*$";
Assertions.assertEquals(expected, evaluate.toString());
}
@Test
public void testEvalRegex() {
var expression = Jsonata.jsonata("$eval('/^test.*$/')");
Object evaluate = expression.evaluate(null);
String expected = "^test.*$";
Assertions.assertEquals(expected, evaluate.toString());
}
@Test
public void testEvalRegexCheckAnswerData() {
var expression = Jsonata.jsonata(
"(\n" +
" $matcher := $eval('/l/');\n" +
" ('Hello World' ~> $matcher);\n" +
")"
);
Map<String, Object> evaluate = (Map<String, Object>)(expression.evaluate(null));
Assertions.assertEquals("l", evaluate.get("match"));
Assertions.assertEquals(2, evaluate.get("start"));
Assertions.assertEquals(3, evaluate.get("end"));
Assertions.assertEquals(List.of("l"), evaluate.get("groups"));
Assertions.assertInstanceOf(Jsonata.Fn0.class, evaluate.get("next"));
}
@Test
public void testEvalRegexCallNextAndCheckResult() {
var expression = Jsonata.jsonata(
"(\n" +
" $matcher := $eval('/l/');\n" +
" ('Hello World' ~> $matcher).next();\n" +
")"
);
Map<String, Object> evaluate = (Map<String, Object>)(expression.evaluate(null));
Assertions.assertEquals("l", evaluate.get("match"));
Assertions.assertEquals(3, evaluate.get("start"));
Assertions.assertEquals(4, evaluate.get("end"));
Assertions.assertEquals(List.of("l"), evaluate.get("groups"));
Assertions.assertInstanceOf(Jsonata.Fn0.class, evaluate.get("next"));
}
}