MCPcopy Create free account
hub / github.com/boostorg/json / testSet

Method testSet

test/pointer.cpp:236–315  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

234 }
235
236 void
237 testSet()
238 {
239 value* result;
240 value jv;
241 result = &jv.set_at_pointer("", array());
242 BOOST_TEST(( jv == array() ));
243 BOOST_TEST( result == &jv );
244
245 result = &jv.set_at_pointer("/0", 10);
246 BOOST_TEST(( jv == array{10} ));
247 BOOST_TEST( *result == 10 );
248
249 result = &jv.set_at_pointer("/-", 20);
250 BOOST_TEST(( jv == array{10, 20} ));
251 BOOST_TEST( *result == 20 );
252
253 result = &jv.set_at_pointer("/-", 30);
254 BOOST_TEST(( jv == array{10, 20, 30} ));
255 BOOST_TEST( *result == 30 );
256
257 result = &jv.set_at_pointer("/1", 25);
258 BOOST_TEST(( jv == array{10, 25, 30} ));
259 BOOST_TEST( *result == 25 );
260
261 result = &jv.set_at_pointer("/-/x", 1);
262 BOOST_TEST(( jv == array{10, 25, 30, object{{"x", 1}}} ));
263 BOOST_TEST( *result == 1 );
264
265 result = &jv.set_at_pointer("/3/0", 2);
266 BOOST_TEST(( jv == array{10, 25, 30, object{{"x", 1}, {"0", 2}}} ));
267 BOOST_TEST( *result == 2 );
268
269 result = &jv.set_at_pointer("/-/0", 3);
270 BOOST_TEST((
271 jv == array{
272 10,
273 25,
274 30,
275 object{{"x", 1}, {"0", 2}},
276 array{3} } ));
277 BOOST_TEST( *result == 3 );
278
279 BOOST_TEST_THROWS_WITH_LOCATION( jv.set_at_pointer("/0/1", 1) );
280
281 jv = value();
282 result = &jv.set_at_pointer("/a/b/c/d/e/f/g/h/i/j/k/l", "m");
283 BOOST_TEST( *result == "m" );
284 BOOST_TEST( result == &jv.at_pointer("/a/b/c/d/e/f/g/h/i/j/k/l") );
285
286 result = &jv.set_at_pointer("/a/b/c/d/e/f/g/h/i/j/k/l", "n");
287 BOOST_TEST( *result == "n" );
288 BOOST_TEST( result == &jv.at_pointer("/a/b/c/d/e/f/g/h/i/j/k/l") );
289
290 set_pointer_options opts;
291 opts.replace_any_scalar = true;
292 jv = 1;
293 result = &jv.set_at_pointer( "/x", 1, opts );

Callers

nothing calls this directly

Calls 3

valueClass · 0.70
arrayClass · 0.50
objectClass · 0.50

Tested by

no test coverage detected