Skip to content

Commit 625cab2

Browse files
committed
Merge pull request #1 from stefankoegl/master
Use new syntax {"op": "add", ...}
2 parents 6defe38 + 31e5fda commit 625cab2

File tree

2 files changed

+58
-58
lines changed

2 files changed

+58
-58
lines changed

simplexml_tests.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,22 @@
66

77
{ "comment": "basic simplexml promotion",
88
"doc": { "foo":1 },
9-
"patch": [ {"add":"/foo/1", "value":2} ],
9+
"patch": [ {"op": "add", "path": "/foo/1", "value":2} ],
1010
"expected": { "foo":[1, 2] } },
1111

1212
{ "comment": "Add 1-length array is equivalent to scalar add",
1313
"doc": { },
14-
"patch": [ {"add":"/foo/0", "value":1} ],
14+
"patch": [ {"op": "add", "path": "/foo/0", "value":1} ],
1515
"expected": { "foo":1 } },
1616

1717
{ "comment": "replace as array",
1818
"doc": { "foo":1 },
19-
"patch": [ {"replace":"/foo/0", "value":2} ],
19+
"patch": [ {"op": "replace", "path": "/foo/0", "value":2} ],
2020
"expected": { "foo":2 } },
2121

2222
{ "comment": "remove penultimate demotes to singleton",
2323
"doc": { "foo":[1, 2] },
24-
"patch": [ {"remove":"/foo/1"} ],
24+
"patch": [ {"op": "remove", "path": "/foo/1"} ],
2525
"expected": { "foo":1 } },
2626

2727
{ "comment": "tests complete" }

tests.json

Lines changed: 54 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,12 @@
2626

2727
{ "comment": "add to existing null-valued field should err",
2828
"doc": {"foo": null},
29-
"patch": [{"add": "/foo", "value":1}],
29+
"patch": [{"op": "add", "path": "/foo", "value":1}],
3030
"error": "'add' target already set" },
3131

3232
{ "comment": "toplevel array",
3333
"doc": [],
34-
"patch": [{"add": "/0", "value": "foo"}],
34+
"patch": [{"op": "add", "path": "/0", "value": "foo"}],
3535
"expected": ["foo"] },
3636

3737
{ "comment": "toplevel array, no change",
@@ -41,160 +41,160 @@
4141

4242
{ "comment": "toplevel object, numeric string",
4343
"doc": {},
44-
"patch": [{"add": "/foo", "value": "1"}],
44+
"patch": [{"op": "add", "path": "/foo", "value": "1"}],
4545
"expected": {"foo":"1"} },
4646

4747
{ "comment": "toplevel object, integer",
4848
"doc": {},
49-
"patch": [{"add": "/foo", "value": 1}],
49+
"patch": [{"op": "add", "path": "/foo", "value": 1}],
5050
"expected": {"foo":1} },
5151

5252
{ "comment": "Toplevel scalar values OK?",
5353
"doc": "foo",
54-
"patch": [{"replace": "", "value": "bar"}],
54+
"patch": [{"op": "replace", "path": "", "value": "bar"}],
5555
"expected": "bar",
5656
"disabled": true },
5757

5858
{ "comment": "Add, / target",
5959
"doc": {},
60-
"patch": [ {"add":"/", "value":1 } ],
60+
"patch": [ {"op": "add", "path": "/", "value":1 } ],
6161
"expected": {"":1} },
6262

6363
{ "comment": "Add composite value at top level",
6464
"doc": {"foo": 1},
65-
"patch": [{"add": "/bar", "value": [1, 2]}],
65+
"patch": [{"op": "add", "path": "/bar", "value": [1, 2]}],
6666
"expected": {"foo": 1, "bar": [1, 2]} },
6767

6868
{ "comment": "Add into composite value",
6969
"doc": {"foo": 1, "baz": [{"qux": "hello"}]},
70-
"patch": [{"add": "/baz/0/foo", "value": "world"}],
70+
"patch": [{"op": "add", "path": "/baz/0/foo", "value": "world"}],
7171
"expected": {"foo": 1, "baz": [{"qux": "hello", "foo": "world"}]} },
7272

7373
{ "doc": {"bar": [1, 2]},
74-
"patch": [{"add": "/bar/8", "value": "5"}],
74+
"patch": [{"op": "add", "path": "/bar/8", "value": "5"}],
7575
"error": "Out of bounds (upper)" },
7676

7777
{ "doc": {"bar": [1, 2]},
78-
"patch": [{"add": "/bar/-1", "value": "5"}],
78+
"patch": [{"op": "add", "path": "/bar/-1", "value": "5"}],
7979
"error": "Out of bounds (lower)" },
8080

8181
{ "doc": {"foo": 1},
82-
"patch": [{"add": "/bar", "value": true}],
82+
"patch": [{"op": "add", "path": "/bar", "value": true}],
8383
"expected": {"foo": 1, "bar": true} },
8484

8585
{ "doc": {"foo": 1},
86-
"patch": [{"add": "/bar", "value": false}],
86+
"patch": [{"op": "add", "path": "/bar", "value": false}],
8787
"expected": {"foo": 1, "bar": false} },
8888

8989
{ "doc": {"foo": 1},
90-
"patch": [{"add": "/bar", "value": null}],
90+
"patch": [{"op": "add", "path": "/bar", "value": null}],
9191
"expected": {"foo": 1, "bar": null} },
9292

9393
{ "doc": {"foo": 1},
94-
"patch": [{"add": "/0", "value": "bar"}],
94+
"patch": [{"op": "add", "path": "/0", "value": "bar"}],
9595
"error": "Array operation on object target" },
9696

9797
{ "doc": ["foo"],
98-
"patch": [{"add": "/1", "value": "bar"}],
98+
"patch": [{"op": "add", "path": "/1", "value": "bar"}],
9999
"expected": ["foo", "bar"] },
100100

101101
{ "doc": ["foo", "sil"],
102-
"patch": [{"add": "/1", "value": "bar"}],
102+
"patch": [{"op": "add", "path": "/1", "value": "bar"}],
103103
"expected": ["foo", "bar", "sil"] },
104104

105105
{ "doc": ["foo", "sil"],
106-
"patch": [{"add": "/0", "value": "bar"}],
106+
"patch": [{"op": "add", "path": "/0", "value": "bar"}],
107107
"expected": ["bar", "foo", "sil"] },
108108

109109
{ "doc": ["foo", "sil"],
110-
"patch": [{"add": "/2", "value": "bar"}],
110+
"patch": [{"op":" add", "path": "/2", "value": "bar"}],
111111
"expected": ["foo", "sil", "bar"] },
112112

113113
{ "doc": ["foo", "sil"],
114-
"patch": [{"add": "/bar", "value": 42}],
114+
"patch": [{"op": "add", "path": "/bar", "value": 42}],
115115
"error": "Object operation on array target" },
116116

117117
{ "doc": ["foo", "sil"],
118-
"patch": [{"add": "/1", "value": ["bar", "baz"]}],
118+
"patch": [{"op": "add", "path": "/1", "value": ["bar", "baz"]}],
119119
"expected": ["foo", ["bar", "baz"], "sil"],
120120
"comment": "value in array add not flattened" },
121121

122122
{ "doc": {"foo": 1, "bar": [1, 2, 3, 4]},
123-
"patch": [{"remove": "/bar"}],
123+
"patch": [{"op": "remove", "path": "/bar"}],
124124
"expected": {"foo": 1} },
125125

126126
{ "doc": {"foo": 1, "baz": [{"qux": "hello"}]},
127-
"patch": [{"remove": "/baz/0/qux"}],
127+
"patch": [{"op": "remove", "path": "/baz/0/qux"}],
128128
"expected": {"foo": 1, "baz": [{}]} },
129129

130130
{ "doc": {"foo": 1, "baz": [{"qux": "hello"}]},
131-
"patch": [{"replace": "/foo", "value": [1, 2, 3, 4]}],
131+
"patch": [{"op": "replace", "path": "/foo", "value": [1, 2, 3, 4]}],
132132
"expected": {"foo": [1, 2, 3, 4], "baz": [{"qux": "hello"}]} },
133133

134134
{ "doc": {"foo": [1, 2, 3, 4], "baz": [{"qux": "hello"}]},
135-
"patch": [{"replace": "/baz/0/qux", "value": "world"}],
135+
"patch": [{"op": "replace", "path": "/baz/0/qux", "value": "world"}],
136136
"expected": {"foo": [1, 2, 3, 4], "baz": [{"qux": "world"}]} },
137137

138138
{ "doc": ["foo"],
139-
"patch": [{"replace": "/0", "value": "bar"}],
139+
"patch": [{"op": "replace", "path": "/0", "value": "bar"}],
140140
"expected": ["bar"] },
141141

142142
{ "doc": [""],
143-
"patch": [{"replace": "/0", "value": 0}],
143+
"patch": [{"op": "replace", "path": "/0", "value": 0}],
144144
"expected": [0] },
145145

146146
{ "doc": [""],
147-
"patch": [{"replace": "/0", "value": true}],
147+
"patch": [{"op": "replace", "path": "/0", "value": true}],
148148
"expected": [true] },
149149

150150
{ "doc": [""],
151-
"patch": [{"replace": "/0", "value": false}],
151+
"patch": [{"op": "replace", "path": "/0", "value": false}],
152152
"expected": [false] },
153153

154154
{ "doc": [""],
155-
"patch": [{"replace": "/0", "value": null}],
155+
"patch": [{"op": "replace", "path": "/0", "value": null}],
156156
"expected": [null] },
157157

158158
{ "doc": ["foo", "sil"],
159-
"patch": [{"replace": "/1", "value": ["bar", "baz"]}],
159+
"patch": [{"op": "replace", "path": "/1", "value": ["bar", "baz"]}],
160160
"expected": ["foo", ["bar", "baz"]],
161161
"comment": "value in array replace not flattened" },
162162

163163
{ "comment": "spurious patch properties",
164164
"doc": {"foo": 1},
165-
"patch": [{"test": "/foo", "value": 1, "spurious": 1}],
165+
"patch": [{"op": "test", "path": "/foo", "value": 1, "spurious": 1}],
166166
"expected": {"foo": 1} },
167167

168168
{ "doc": {"foo": null},
169-
"patch": [{"test": "/foo", "value": null}],
169+
"patch": [{"op": "test", "path": "/foo", "value": null}],
170170
"comment": "null value should still be valid obj property" },
171171

172172
{ "doc": {"foo": {"foo": 1, "bar": 2}},
173-
"patch": [{"test": "/foo", "value": {"bar": 2, "foo": 1}}],
173+
"patch": [{"op": "test", "path": "/foo", "value": {"bar": 2, "foo": 1}}],
174174
"comment": "test should pass despite rearrangement" },
175-
175+
176176
{ "doc": {"foo": [{"foo": 1, "bar": 2}]},
177-
"patch": [{"test": "/foo", "value": [{"bar": 2, "foo": 1}]}],
177+
"patch": [{"op": "test", "path": "/foo", "value": [{"bar": 2, "foo": 1}]}],
178178
"comment": "test should pass despite (nested) rearrangement" },
179179

180180
{ "doc": {"foo": {"bar": [1, 2, 5, 4]}},
181-
"patch": [{"test": "/foo", "value": {"bar": [1, 2, 5, 4]}}],
181+
"patch": [{"op": "test", "path": "/foo", "value": {"bar": [1, 2, 5, 4]}}],
182182
"comment": "test should pass - no error" },
183183

184184
{ "doc": {"foo": {"bar": [1, 2, 5, 4]}},
185-
"patch": [{"test": "/foo", "value": [1, 2]}],
185+
"patch": [{"op": "test", "path": "/foo", "value": [1, 2]}],
186186
"error": "test op should fail" },
187187

188188
{ "comment": "json-pointer tests" },
189189

190190
{ "comment": "Whole document",
191191
"doc": { "foo": 1 },
192-
"patch": [{"test":"", "value": {"foo": 1}}],
192+
"patch": [{"op": "test", "path": "", "value": {"foo": 1}}],
193193
"disabled": true },
194194

195195
{ "comment": "Empty-string element",
196196
"doc": { "": 1 },
197-
"patch": [{"test":"/", "value": 1}] },
197+
"patch": [{"op": "test", "path": "/", "value": 1}] },
198198

199199
{ "doc": {
200200
"foo": ["bar", "baz"],
@@ -208,33 +208,33 @@
208208
" ": 7,
209209
"m~n": 8
210210
},
211-
"patch": [{"test": "/foo", "value": ["bar", "baz"]},
212-
{"test": "/foo/0", "value": "bar"},
213-
{"test": "/", "value": 0},
214-
{"test": "/a~1b", "value": 1},
215-
{"test": "/c%d", "value": 2},
216-
{"test": "/e^f", "value": 3},
217-
{"test": "/g|h", "value": 4},
218-
{"test": "/i\\j", "value": 5},
219-
{"test": "/k\"l", "value": 6},
220-
{"test": "/ ", "value": 7},
221-
{"test": "/m~0n", "value": 8}] },
211+
"patch": [{"op": "test", "path": "/foo", "value": ["bar", "baz"]},
212+
{"op": "test", "path": "/foo/0", "value": "bar"},
213+
{"op": "test", "path": "/", "value": 0},
214+
{"op": "test", "path": "/a~1b", "value": 1},
215+
{"op": "test", "path": "/c%d", "value": 2},
216+
{"op": "test", "path": "/e^f", "value": 3},
217+
{"op": "test", "path": "/g|h", "value": 4},
218+
{"op": "test", "path": "/i\\j", "value": 5},
219+
{"op": "test", "path": "/k\"l", "value": 6},
220+
{"op": "test", "path": "/ ", "value": 7},
221+
{"op": "test", "path": "/m~0n", "value": 8}] },
222222

223223
{ "comment": "Move to same location has no effect",
224224
"doc": {"foo": 1},
225-
"patch": [{"move": "/foo", "to": "/foo"}],
225+
"patch": [{"op": "move", "path": "/foo", "to": "/foo"}],
226226
"expected": {"foo": 1} },
227227

228228
{ "doc": {"foo": 1, "baz": [{"qux": "hello"}]},
229-
"patch": [{"move": "/foo", "to": "/bar"}],
229+
"patch": [{"op": "move", "path": "/foo", "to": "/bar"}],
230230
"expected": {"baz": [{"qux": "hello"}], "bar": 1} },
231231

232232
{ "doc": {"baz": [{"qux": "hello"}], "bar": 1},
233-
"patch": [{"move": "/baz/0/qux", "to": "/baz/1"}],
233+
"patch": [{"op": "move", "path": "/baz/0/qux", "to": "/baz/1"}],
234234
"expected": {"baz": [{}, "hello"], "bar": 1} },
235235

236236
{ "doc": {"baz": [{"qux": "hello"}], "bar": 1},
237-
"patch": [{"copy":"/baz/0", "to": "/boo"}],
237+
"patch": [{"op": "copy", "path": "/baz/0", "to": "/boo"}],
238238
"expected": {"baz":[{"qux":"hello"}],"bar":1,"boo":{"qux":"hello"}} },
239239

240240
{ "comment": "tests complete" }

0 commit comments

Comments
 (0)