-
Notifications
You must be signed in to change notification settings - Fork 27
Expand file tree
/
Copy pathPathTest.java
More file actions
68 lines (58 loc) · 3.12 KB
/
PathTest.java
File metadata and controls
68 lines (58 loc) · 3.12 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
58
59
60
61
62
63
64
65
66
67
68
package com.redislabs.modules.rejson;
import static org.junit.Assert.*;
import org.junit.Test;
public class PathTest {
@Test
public void testRootPathConstant() {
assertEquals(".", Path.ROOT_PATH.toString());
}
@Test
public void testStaticFactoryMethod() {
assertEquals(".a.b", Path.of(".a.b").toString());
}
@Test
public void testPathEquals() {
assertEquals(Path.of(".a.b.c"), Path.of(".a.b.c"));
assertNotEquals(Path.of(".a.b.c"), Path.of(".b.c"));
assertNotEquals(Path.of(".a.b.c"), null);
assertNotEquals(Path.of(".a.b.c"), ".a.b.c");
Path aPath = Path.of(".a");
assertEquals(aPath, aPath);
}
@Test
public void testPathHashCode() {
assertEquals(Path.of(".a.b.c").hashCode(), Path.of(".a.b.c").hashCode());
assertNotEquals(Path.of(".a.b.c").hashCode(), Path.of(".b.c").hashCode());
}
@Test
public void testJsonPointer() {
assertEquals(Path.ofJsonPointer(""), Path.ROOT_PATH);
assertEquals(Path.ofJsonPointer("/"), Path.of(".[\"\"]"));
assertEquals(Path.ofJsonPointer("//0"), Path.of(".[\"\"].[0]"));
assertEquals(Path.ofJsonPointer("//"), Path.of(".[\"\"].[\"\"]"));
assertEquals(Path.ofJsonPointer("// "), Path.of(".[\"\"].[\" \"]"));
assertEquals(Path.ofJsonPointer("/a/b/c"), Path.of(".[\"a\"].[\"b\"].[\"c\"]"));
assertEquals(Path.ofJsonPointer("/a/0/c"), Path.of(".[\"a\"].[0].[\"c\"]"));
assertEquals(Path.ofJsonPointer("/a/0b/c"), Path.of(".[\"a\"].[\"0b\"].[\"c\"]"));
assertEquals(Path.ofJsonPointer("/ab/cd/1010"), Path.of(".[\"ab\"].[\"cd\"].[1010]"));
assertEquals(Path.ofJsonPointer("/a/b/c").hashCode(), Path.of(".[\"a\"].[\"b\"].[\"c\"]").hashCode());
// escape test
assertEquals(Path.ofJsonPointer("/a/~0"), Path.of(".[\"a\"].[\"~\"]"));
assertEquals(Path.ofJsonPointer("/a/~1"), Path.of(".[\"a\"].[\"/\"]"));
assertEquals(Path.ofJsonPointer("/a/~0/c"), Path.of(".[\"a\"].[\"~\"].[\"c\"]"));
assertEquals(Path.ofJsonPointer("/a/~1/c"), Path.of(".[\"a\"].[\"/\"].[\"c\"]"));
assertEquals(Path.ofJsonPointer("/a/~~/c"), Path.of(".[\"a\"].[\"~~\"].[\"c\"]"));
assertEquals(Path.ofJsonPointer("/~/~~~/~"), Path.of(".[\"~\"].[\"~~~\"].[\"~\"]"));
assertEquals(Path.ofJsonPointer("/~/~~~/~~"), Path.of(".[\"~\"].[\"~~~\"].[\"~~\"]"));
assertEquals(Path.ofJsonPointer("/~/~~~0/~~"), Path.of(".[\"~\"].[\"~~~\"].[\"~~\"]"));
assertEquals(Path.ofJsonPointer("/~/'.'/~~"), Path.of(".[\"~\"].[\"'.'\"].[\"~~\"]"));
// json path escape test
assertEquals(Path.ofJsonPointer("/\t"), Path.of(".[\"\t\"]"));
assertEquals(Path.ofJsonPointer("/\u0074"), Path.of(".[\"\u0074\"]"));
assertEquals(Path.ofJsonPointer("/'"), Path.of(".[\"'\"]"));
assertEquals(Path.ofJsonPointer("/\'"), Path.of(".[\"\'\"]"));
assertEquals(Path.ofJsonPointer("/\""), Path.of(".[\"\"\"]"));
assertEquals(Path.ofJsonPointer("/\n"), Path.of(".[\"\n\"]"));
assertEquals(Path.ofJsonPointer("/\\"), Path.of(".[\"\\\"]"));
}
}