@@ -9,12 +9,14 @@ expect_identical(j_patch_apply(json, '[]', as = "R"), as_r(json))
9
9
patch <- ' [{"op": "remove", "path": "/biscuits"}]'
10
10
expect_identical(j_patch_apply(json , patch ), " {}" )
11
11
12
- json_r = as_r(json ) # 'data' is an R object
13
- expect_identical(j_patch_apply(json_r , patch , auto_unbox = TRUE ), " {}" )
12
+ if (has_jsonlite ) {
13
+ json_r = as_r(json ) # 'data' is an R object
14
+ expect_identical(j_patch_apply(json_r , patch , auto_unbox = TRUE ), " {}" )
14
15
15
- patch_r = as_r(patch ) # 'patch' is an R object
16
- expect_identical(j_patch_apply(json , patch_r , auto_unbox = TRUE ), " {}" )
17
- expect_identical(j_patch_apply(json_r , patch_r , auto_unbox = TRUE ), " {}" )
16
+ patch_r = as_r(patch ) # 'patch' is an R object
17
+ expect_identical(j_patch_apply(json , patch_r , auto_unbox = TRUE ), " {}" )
18
+ expect_identical(j_patch_apply(json_r , patch_r , auto_unbox = TRUE ), " {}" )
19
+ }
18
20
19
21
patch <- ' {"op": "remove", "path": "/biscuits"}' # not an array
20
22
expect_error(j_patch_apply(json , patch ))
@@ -45,78 +47,82 @@ expect_identical(
45
47
value = list (name = " Choco Leibniz" )
46
48
))
47
49
)
48
- expect_identical(
49
- j_patch_from(j_patch_apply(json , patch , as = " R" ), json , auto_unbox = TRUE ),
50
- ' [{"op":"add","path":"/biscuits/1","value":{"name":"Choco Leibniz"}}]'
51
- )
52
- expect_identical(
53
- j_patch_from(j_patch_apply(json , patch ), json_r , auto_unbox = TRUE ),
54
- ' [{"op":"add","path":"/biscuits/1","value":{"name":"Choco Leibniz"}}]'
55
- )
56
-
57
- # # j_patch_op
58
50
59
- value0 <- list (name = " Ginger Nut" )
60
- value1 <- list (name = jsonlite :: unbox(" Ginger Nut" ))
61
- path <- " /biscuits/1"
51
+ if (has_jsonlite ) {
52
+ expect_identical(
53
+ j_patch_from(j_patch_apply(json , patch , as = " R" ), json , auto_unbox = TRUE ),
54
+ ' [{"op":"add","path":"/biscuits/1","value":{"name":"Choco Leibniz"}}]'
55
+ )
56
+ expect_identical(
57
+ j_patch_from(j_patch_apply(json , patch ), json_r , auto_unbox = TRUE ),
58
+ ' [{"op":"add","path":"/biscuits/1","value":{"name":"Choco Leibniz"}}]'
59
+ )
60
+ }
62
61
63
- expect_identical(
64
- unclass(j_patch_op(" add" , path , value = value0 )),
65
- c(' [' ,
66
- ' {"op":"add","path":"/biscuits/1","value":{"name":["Ginger Nut"]}}' ,
67
- ' ]' )
68
- )
69
- expect_identical(
70
- unclass(j_patch_op(" add" , path , value = value1 )),
71
- c(' [' ,
72
- ' {"op":"add","path":"/biscuits/1","value":{"name":"Ginger Nut"}}' ,
73
- ' ]' )
74
- )
75
- expect_identical(
76
- unclass(j_patch_op(" add" , path , value = value0 , auto_unbox = TRUE )),
77
- c(' [' ,
78
- ' {"op":"add","path":"/biscuits/1","value":{"name":"Ginger Nut"}}' ,
79
- ' ]' )
80
- )
81
- expect_identical(
82
- unclass(j_patch_op(" remove" , path )),
83
- c(' [' , ' {"op":"remove","path":"/biscuits/1"}' , ' ]' )
84
- )
85
- expect_identical(
86
- unclass(j_patch_op(" replace" , path , value = value1 )),
87
- c(' [' ,
88
- ' {"op":"replace","path":"/biscuits/1","value":{"name":"Ginger Nut"}}' ,
89
- ' ]' )
90
- )
91
- expect_identical(
92
- unclass(j_patch_op(" copy" , path , from = path )),
93
- c(' [' , ' {"op":"copy","path":"/biscuits/1","from":"/biscuits/1"}' , ' ]' )
94
- )
95
- expect_identical(
96
- unclass(j_patch_op(" move" , path , from = path )),
97
- c(' [' , ' {"op":"move","path":"/biscuits/1","from":"/biscuits/1"}' , ' ]' )
98
- )
99
- expect_identical(
100
- unclass(j_patch_op(" test" , path , value = value1 )),
101
- c(' [' ,
102
- ' {"op":"test","path":"/biscuits/1","value":{"name":"Ginger Nut"}}' ,
103
- ' ]' )
104
- )
105
-
106
- # # concatenation and piping
107
- patch <- j_patch_op(" add" , path , value = value1 )
108
- expected <- c(
109
- ' [' ,
110
- ' {"op":"add","path":"/biscuits/1","value":{"name":"Ginger Nut"}}' ,
111
- ' ,' ,
112
- ' {"op":"add","path":"/biscuits/1","value":{"name":"Ginger Nut"}}' ,
113
- ' ]'
114
- )
115
- expect_identical(unclass(c(patch , patch )), expected )
116
-
117
- patch1 <- patch | > j_patch_op(" add" , path , value = value1 )
118
- expect_identical(unclass(patch1 ), expected )
62
+ # # j_patch_op
119
63
64
+ if (has_jsonlite ) {
65
+ value0 <- list (name = " Ginger Nut" )
66
+ value1 <- list (name = jsonlite :: unbox(" Ginger Nut" ))
67
+ path <- " /biscuits/1"
68
+
69
+ expect_identical(
70
+ unclass(j_patch_op(" add" , path , value = value0 )),
71
+ c(' [' ,
72
+ ' {"op":"add","path":"/biscuits/1","value":{"name":["Ginger Nut"]}}' ,
73
+ ' ]' )
74
+ )
75
+ expect_identical(
76
+ unclass(j_patch_op(" add" , path , value = value1 )),
77
+ c(' [' ,
78
+ ' {"op":"add","path":"/biscuits/1","value":{"name":"Ginger Nut"}}' ,
79
+ ' ]' )
80
+ )
81
+ expect_identical(
82
+ unclass(j_patch_op(" add" , path , value = value0 , auto_unbox = TRUE )),
83
+ c(' [' ,
84
+ ' {"op":"add","path":"/biscuits/1","value":{"name":"Ginger Nut"}}' ,
85
+ ' ]' )
86
+ )
87
+ expect_identical(
88
+ unclass(j_patch_op(" remove" , path )),
89
+ c(' [' , ' {"op":"remove","path":"/biscuits/1"}' , ' ]' )
90
+ )
91
+ expect_identical(
92
+ unclass(j_patch_op(" replace" , path , value = value1 )),
93
+ c(' [' ,
94
+ ' {"op":"replace","path":"/biscuits/1","value":{"name":"Ginger Nut"}}' ,
95
+ ' ]' )
96
+ )
97
+ expect_identical(
98
+ unclass(j_patch_op(" copy" , path , from = path )),
99
+ c(' [' , ' {"op":"copy","path":"/biscuits/1","from":"/biscuits/1"}' , ' ]' )
100
+ )
101
+ expect_identical(
102
+ unclass(j_patch_op(" move" , path , from = path )),
103
+ c(' [' , ' {"op":"move","path":"/biscuits/1","from":"/biscuits/1"}' , ' ]' )
104
+ )
105
+ expect_identical(
106
+ unclass(j_patch_op(" test" , path , value = value1 )),
107
+ c(' [' ,
108
+ ' {"op":"test","path":"/biscuits/1","value":{"name":"Ginger Nut"}}' ,
109
+ ' ]' )
110
+ )
111
+
112
+ # # concatenation and piping
113
+ patch <- j_patch_op(" add" , path , value = value1 )
114
+ expected <- c(
115
+ ' [' ,
116
+ ' {"op":"add","path":"/biscuits/1","value":{"name":"Ginger Nut"}}' ,
117
+ ' ,' ,
118
+ ' {"op":"add","path":"/biscuits/1","value":{"name":"Ginger Nut"}}' ,
119
+ ' ]'
120
+ )
121
+ expect_identical(unclass(c(patch , patch )), expected )
122
+
123
+ patch1 <- patch | > j_patch_op(" add" , path , value = value1 )
124
+ expect_identical(unclass(patch1 ), expected )
125
+ }
120
126
expect_error(j_patch_op())
121
127
expect_error(j_patch_op(" add" )) # no 'path'
122
128
expect_error(j_patch_op(" add" , path )) # no 'value'
@@ -126,5 +132,7 @@ expect_error(j_patch_op("copy", path)) # no 'from'
126
132
expect_error(j_patch_op(" move" , path )) # no 'from'
127
133
expect_error(j_patch_op(" test" , path )) # no 'value'
128
134
129
- patch <- j_patch_op(" remove" , " /biscuits" )
130
- expect_identical(j_patch_apply(json , patch ), " {}" )
135
+ if (has_jsonlite ) {
136
+ patch <- j_patch_op(" remove" , " /biscuits" )
137
+ expect_identical(j_patch_apply(json , patch ), " {}" )
138
+ }
0 commit comments