1
+ [
2
+ {
3
+ "comment" : " A.1. Adding an Object Member" ,
4
+ "doc" : {
5
+ "foo" : " bar"
6
+ },
7
+ "patch" : [
8
+ { "op" : " add" , "path" : " /baz" , "value" : " qux" }
9
+ ],
10
+ "expected" : {
11
+ "baz" : " qux" ,
12
+ "foo" : " bar"
13
+ }
14
+ },
15
+
16
+ {
17
+ "comment" : " A.2. Adding an Array Element" ,
18
+ "doc" : {
19
+ "foo" : [ " bar" , " baz" ]
20
+ },
21
+ "patch" : [
22
+ { "op" : " add" , "path" : " /foo/1" , "value" : " qux" }
23
+ ],
24
+ "expected" : {
25
+ "foo" : [ " bar" , " qux" , " baz" ]
26
+ }
27
+ },
28
+
29
+ {
30
+ "comment" : " A.3. Removing an Object Member" ,
31
+ "doc" : {
32
+ "baz" : " qux" ,
33
+ "foo" : " bar"
34
+ },
35
+ "patch" : [
36
+ { "op" : " remove" , "path" : " /baz" }
37
+ ],
38
+ "expected" : {
39
+ "foo" : " bar"
40
+ }
41
+ },
42
+
43
+ {
44
+ "comment" : " A.4. Removing an Array Element" ,
45
+ "doc" : {
46
+ "foo" : [ " bar" , " qux" , " baz" ]
47
+ },
48
+ "patch" : [
49
+ { "op" : " remove" , "path" : " /foo/1" }
50
+ ],
51
+ "expected" : {
52
+ "foo" : [ " bar" , " baz" ]
53
+ }
54
+ },
55
+
56
+ {
57
+ "comment" : " A.5. Replacing a Value" ,
58
+ "doc" : {
59
+ "baz" : " qux" ,
60
+ "foo" : " bar"
61
+ },
62
+ "patch" : [
63
+ { "op" : " replace" , "path" : " /baz" , "value" : " boo" }
64
+ ],
65
+ "expected" : {
66
+ "baz" : " boo" ,
67
+ "foo" : " bar"
68
+ }
69
+ },
70
+
71
+ {
72
+ "comment" : " A.6. Moving a Value" ,
73
+ "doc" : {
74
+ "foo" : {
75
+ "bar" : " baz" ,
76
+ "waldo" : " fred"
77
+ },
78
+ "qux" : {
79
+ "corge" : " grault"
80
+ }
81
+ },
82
+ "patch" : [
83
+ { "op" : " move" , "from" : " /foo/waldo" , "path" : " /qux/thud" }
84
+ ],
85
+ "expected" : {
86
+ "foo" : {
87
+ "bar" : " baz"
88
+ },
89
+ "qux" : {
90
+ "corge" : " grault" ,
91
+ "thud" : " fred"
92
+ }
93
+ }
94
+ },
95
+
96
+ {
97
+ "comment" : " A.7. Moving an Array Element" ,
98
+ "doc" : {
99
+ "foo" : [ " all" , " grass" , " cows" , " eat" ]
100
+ },
101
+ "patch" : [
102
+ { "op" : " move" , "from" : " /foo/1" , "path" : " /foo/3" }
103
+ ],
104
+ "expected" : {
105
+ "foo" : [ " all" , " cows" , " eat" , " grass" ]
106
+ }
107
+
108
+ },
109
+
110
+ {
111
+ "comment" : " A.8. Testing a Value: Success" ,
112
+ "doc" : {
113
+ "baz" : " qux" ,
114
+ "foo" : [ " a" , 2 , " c" ]
115
+ },
116
+ "patch" : [
117
+ { "op" : " test" , "path" : " /baz" , "value" : " qux" },
118
+ { "op" : " test" , "path" : " /foo/1" , "value" : 2 }
119
+ ],
120
+ "expected" : {
121
+ "baz" : " qux" ,
122
+ "foo" : [ " a" , 2 , " c" ]
123
+ }
124
+ },
125
+
126
+ {
127
+ "comment" : " A.9. Testing a Value: Error" ,
128
+ "doc" : {
129
+ "baz" : " qux"
130
+ },
131
+ "patch" : [
132
+ { "op" : " test" , "path" : " /baz" , "value" : " bar" }
133
+ ],
134
+ "error" : " string not equivalent"
135
+ },
136
+
137
+ {
138
+ "comment" : " A.10. Adding a nested Member Object" ,
139
+ "doc" : {
140
+ "foo" : " bar"
141
+ },
142
+ "patch" : [
143
+ { "op" : " add" , "path" : " /child" , "value" : { "grandchild" : { } } }
144
+ ],
145
+ "expected" : {
146
+ "foo" : " bar" ,
147
+ "child" : {
148
+ "grandchild" : {
149
+ }
150
+ }
151
+ }
152
+ },
153
+
154
+ {
155
+ "comment" : " A.11. Ignoring Unrecognized Elements" ,
156
+ "doc" : {
157
+ "foo" :" bar"
158
+ },
159
+ "patch" : [
160
+ { "op" : " add" , "path" : " /baz" , "value" : " qux" , "xyz" : 123 }
161
+ ],
162
+ "expected" : {
163
+ "foo" :" bar" ,
164
+ "baz" :" qux"
165
+ }
166
+ },
167
+
168
+ {
169
+ "comment" : " A.12. Adding to a Non-existant Target" ,
170
+ "doc" : {
171
+ "foo" : " bar"
172
+ },
173
+ "patch" : [
174
+ { "op" : " add" , "path" : " /baz/bat" , "value" : " qux" }
175
+ ],
176
+ "error" : " add to a non-existant target"
177
+ },
178
+
179
+ {
180
+ "comment" : " Invalid JSON Patch Document" ,
181
+ "doc" : {
182
+ "foo" : " bar"
183
+ },
184
+ "patch" : [
185
+ { "op" : " add" , "path" : " /baz" , "value" : " qux" , "op" : " remove" }
186
+ ],
187
+ "error" : " operation has two 'op' members"
188
+ }
189
+ ]
0 commit comments