-
Notifications
You must be signed in to change notification settings - Fork 0
/
object_test.go
68 lines (58 loc) · 1.14 KB
/
object_test.go
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 jq
import (
"testing"
)
func TestObject(tb *testing.T) {
b := NewBuffer()
root := b.appendVal(obj{
"a", "q",
"b", 1,
"c",
obj{"d", "e"},
"f",
arr{2, 3},
})
f := NewObject("a", NewQuery("a"), NewQuery("a"), NewQuery("f"))
testOne(tb, f, b, root, obj{"a", "q", "q", arr{2, 3}})
}
func TestObjectIter(tb *testing.T) {
b := NewBuffer()
root := b.appendVal(obj{
"a", "b",
"c",
obj{
"d", arr{
obj{"e", "val1"},
obj{"e", "val2"},
},
},
})
f := NewObject("a", NewQuery("a"), "e", NewQuery("c", "d", Iter{}, "e"))
testIter(tb, f, b, root, []any{
obj{"a", "b", "e", "val1"},
obj{"a", "b", "e", "val2"},
})
}
func TestObjectIterMulti(tb *testing.T) {
b := NewBuffer()
root := b.appendVal(obj{
"a",
arr{"q", "w", "e"},
"c",
obj{
"d", arr{
obj{"e", "val1"},
obj{"e", "val2"},
},
},
})
f := NewObject("a", NewQuery("a", Iter{}), "e", NewQuery("c", "d", Iter{}, "e"))
testIter(tb, f, b, root, []any{
obj{"a", "q", "e", "val1"},
obj{"a", "q", "e", "val2"},
obj{"a", "w", "e", "val1"},
obj{"a", "w", "e", "val2"},
obj{"a", "e", "e", "val1"},
obj{"a", "e", "e", "val2"},
})
}