Lines Matching full:patch
38 TEST_CASE("JSON patch")
56 json patch = R"([{ "op": "add", "path": "/a/b/c", "value": [ "foo", "bar" ] }])"_json; variable
66 CHECK_NOTHROW(doc1.patch(patch));
77 CHECK(doc1.patch(patch) == doc1_ans);
83 CHECK_THROWS_AS(doc2.patch(patch), json::out_of_range&);
84 CHECK_THROWS_WITH(doc2.patch(patch),
93 json patch = {{{"op", "remove"}, {"path", "/1"}}}; variable
94 CHECK(doc.patch(patch) == json({1, 3, 4}));
104 // A JSON Patch document:
105 json patch = R"( variable
120 CHECK(doc.patch(patch) == expected);
123 CHECK(doc.patch(json::diff(doc, expected)) == expected);
133 // A JSON Patch document:
134 json patch = R"( variable
146 CHECK(doc.patch(patch) == expected);
149 CHECK(doc.patch(json::diff(doc, expected)) == expected);
162 // A JSON Patch document:
163 json patch = R"( variable
175 CHECK(doc.patch(patch) == expected);
178 CHECK(doc.patch(json::diff(doc, expected)) == expected);
188 // A JSON Patch document:
189 json patch = R"( variable
201 CHECK(doc.patch(patch) == expected);
204 CHECK(doc.patch(json::diff(doc, expected)) == expected);
217 // A JSON Patch document:
218 json patch = R"( variable
232 CHECK(doc.patch(patch) == expected);
235 CHECK(doc.patch(json::diff(doc, expected)) == expected);
253 // A JSON Patch document:
254 json patch = R"( variable
274 CHECK(doc.patch(patch) == expected);
277 CHECK(doc.patch(json::diff(doc, expected)) == expected);
287 // A JSON Patch document:
288 json patch = R"( variable
300 CHECK(doc.patch(patch) == expected);
303 CHECK(doc.patch(json::diff(doc, expected)) == expected);
316 // A JSON Patch document that will result in successful evaluation:
317 json patch = R"( variable
325 CHECK_NOTHROW(doc.patch(patch));
327 CHECK(doc.patch(patch) == doc);
337 // A JSON Patch document that will result in an error condition:
338 json patch = R"( variable
345 CHECK_THROWS_AS(doc.patch(patch), json::other_error&);
347 …CHECK_THROWS_WITH_STD_STR(doc.patch(patch), "[json.exception.other_error.501] (/0) unsuccessful: "…
349 …CHECK_THROWS_WITH_STD_STR(doc.patch(patch), "[json.exception.other_error.501] unsuccessful: " + pa…
360 // A JSON Patch document:
361 json patch = R"( variable
379 CHECK(doc.patch(patch) == expected);
382 CHECK(doc.patch(json::diff(doc, expected)) == expected);
392 // A JSON Patch document:
393 json patch = R"( variable
407 CHECK(doc.patch(patch) == expected);
410 CHECK(doc.patch(json::diff(doc, expected)) == expected);
420 // A JSON Patch document:
421 json patch = R"( variable
427 // This JSON Patch document, applied to the target JSON document
433 CHECK_THROWS_AS(doc.patch(patch), json::out_of_range&);
434 CHECK_THROWS_WITH(doc.patch(patch),
438 // A.13. Invalid JSON Patch Document
451 // A JSON Patch document:
452 json patch = R"( variable
466 CHECK(doc.patch(patch) == expected);
469 CHECK(doc.patch(json::diff(doc, expected)) == expected);
482 // A JSON Patch document that will result in an error condition:
483 json patch = R"( variable
490 CHECK_THROWS_AS(doc.patch(patch), json::other_error&);
492 …CHECK_THROWS_WITH_STD_STR(doc.patch(patch), "[json.exception.other_error.501] (/0) unsuccessful: "…
494 …CHECK_THROWS_WITH_STD_STR(doc.patch(patch), "[json.exception.other_error.501] unsuccessful: " + pa…
505 // A JSON Patch document:
506 json patch = R"( variable
518 CHECK(doc.patch(patch) == expected);
521 CHECK(doc.patch(json::diff(doc, expected)) == expected);
538 // A JSON Patch document:
539 json patch = R"( variable
549 CHECK(doc.patch(patch) == expected);
552 CHECK(doc.patch(json::diff(doc, expected)) == expected);
564 // A JSON Patch document:
565 json patch = R"( variable
575 CHECK(doc.patch(patch) == expected);
578 CHECK(doc.patch(json::diff(doc, expected)) == expected);
597 // A JSON Patch document:
598 json patch = R"( variable
619 CHECK(doc.patch(patch) == expected);
622 CHECK(doc.patch(json::diff(doc, expected)) == expected);
628 json patch = {{{"op", "replace"}, {"path", ""}, {"value", 1}}}; variable
629 CHECK(j.patch(patch) == json(1));
635 // a JSON patch
645 // apply the patch
646 json target = source.patch(p1);
683 json patch = {{"op", "add"}, {"path", ""}, {"value", 1}}; variable
684 CHECK_THROWS_AS(j.patch(patch), json::parse_error&);
685 CHECK_THROWS_WITH(j.patch(patch),
686 … "[json.exception.parse_error.104] parse error: JSON patch must be an array of objects");
692 json patch = {"op", "add", "path", "", "value", 1}; variable
693 CHECK_THROWS_AS(j.patch(patch), json::parse_error&);
695 …CHECK_THROWS_WITH(j.patch(patch), "[json.exception.parse_error.104] parse error: (/0) JSON patch m…
697 …CHECK_THROWS_WITH(j.patch(patch), "[json.exception.parse_error.104] parse error: JSON patch must b…
704 json patch = {{{"foo", "bar"}}}; variable
705 CHECK_THROWS_AS(j.patch(patch), json::parse_error&);
707 …CHECK_THROWS_WITH(j.patch(patch), "[json.exception.parse_error.105] parse error: (/0) operation mu…
709 …CHECK_THROWS_WITH(j.patch(patch), "[json.exception.parse_error.105] parse error: operation must ha…
716 json patch = {{{"op", 1}}}; variable
717 CHECK_THROWS_AS(j.patch(patch), json::parse_error&);
719 …CHECK_THROWS_WITH(j.patch(patch), "[json.exception.parse_error.105] parse error: (/0) operation mu…
721 …CHECK_THROWS_WITH(j.patch(patch), "[json.exception.parse_error.105] parse error: operation must ha…
728 json patch = {{{"op", "foo"}, {"path", ""}}}; variable
729 CHECK_THROWS_AS(j.patch(patch), json::parse_error&);
731 …CHECK_THROWS_WITH(j.patch(patch), "[json.exception.parse_error.105] parse error: (/0) operation va…
733 …CHECK_THROWS_WITH(j.patch(patch), "[json.exception.parse_error.105] parse error: operation value '…
743 json patch = {{{"op", "add"}}}; variable
744 CHECK_THROWS_AS(j.patch(patch), json::parse_error&);
746 …CHECK_THROWS_WITH(j.patch(patch), "[json.exception.parse_error.105] parse error: (/0) operation 'a…
748 …CHECK_THROWS_WITH(j.patch(patch), "[json.exception.parse_error.105] parse error: operation 'add' m…
755 json patch = {{{"op", "add"}, {"path", 1}}}; variable
756 CHECK_THROWS_AS(j.patch(patch), json::parse_error&);
758 …CHECK_THROWS_WITH(j.patch(patch), "[json.exception.parse_error.105] parse error: (/0) operation 'a…
760 …CHECK_THROWS_WITH(j.patch(patch), "[json.exception.parse_error.105] parse error: operation 'add' m…
767 json patch = {{{"op", "add"}, {"path", ""}}}; variable
768 CHECK_THROWS_AS(j.patch(patch), json::parse_error&);
770 …CHECK_THROWS_WITH(j.patch(patch), "[json.exception.parse_error.105] parse error: (/0) operation 'a…
772 …CHECK_THROWS_WITH(j.patch(patch), "[json.exception.parse_error.105] parse error: operation 'add' m…
779 json patch = {{{"op", "add"}, {"path", "/4"}, {"value", 4}}}; variable
780 CHECK_THROWS_AS(j.patch(patch), json::out_of_range&);
781 CHECK_THROWS_WITH(j.patch(patch),
791 json patch = {{{"op", "remove"}}}; variable
792 CHECK_THROWS_AS(j.patch(patch), json::parse_error&);
794 …CHECK_THROWS_WITH(j.patch(patch), "[json.exception.parse_error.105] parse error: (/0) operation 'r…
796 …CHECK_THROWS_WITH(j.patch(patch), "[json.exception.parse_error.105] parse error: operation 'remove…
803 json patch = {{{"op", "remove"}, {"path", 1}}}; variable
804 CHECK_THROWS_AS(j.patch(patch), json::parse_error&);
806 …CHECK_THROWS_WITH(j.patch(patch), "[json.exception.parse_error.105] parse error: (/0) operation 'r…
808 …CHECK_THROWS_WITH(j.patch(patch), "[json.exception.parse_error.105] parse error: operation 'remove…
815 json patch = {{{"op", "remove"}, {"path", "/17"}}}; variable
816 CHECK_THROWS_AS(j.patch(patch), json::out_of_range&);
817 CHECK_THROWS_WITH(j.patch(patch),
824 json patch = {{{"op", "remove"}, {"path", "/baz"}}}; variable
825 CHECK_THROWS_AS(j.patch(patch), json::out_of_range&);
826 CHECK_THROWS_WITH(j.patch(patch),
833 json patch = {{{"op", "remove"}, {"path", ""}}}; variable
834 CHECK_THROWS_AS(j.patch(patch), json::out_of_range&);
835 CHECK_THROWS_WITH(j.patch(patch),
845 json patch = {{{"op", "replace"}}}; variable
846 CHECK_THROWS_AS(j.patch(patch), json::parse_error&);
848 …CHECK_THROWS_WITH(j.patch(patch), "[json.exception.parse_error.105] parse error: (/0) operation 'r…
850 …CHECK_THROWS_WITH(j.patch(patch), "[json.exception.parse_error.105] parse error: operation 'replac…
857 json patch = {{{"op", "replace"}, {"path", 1}}}; variable
858 CHECK_THROWS_AS(j.patch(patch), json::parse_error&);
860 …CHECK_THROWS_WITH(j.patch(patch), "[json.exception.parse_error.105] parse error: (/0) operation 'r…
862 …CHECK_THROWS_WITH(j.patch(patch), "[json.exception.parse_error.105] parse error: operation 'replac…
869 json patch = {{{"op", "replace"}, {"path", ""}}}; variable
870 CHECK_THROWS_AS(j.patch(patch), json::parse_error&);
872 …CHECK_THROWS_WITH(j.patch(patch), "[json.exception.parse_error.105] parse error: (/0) operation 'r…
874 …CHECK_THROWS_WITH(j.patch(patch), "[json.exception.parse_error.105] parse error: operation 'replac…
881 json patch = {{{"op", "replace"}, {"path", "/17"}, {"value", 19}}}; variable
882 CHECK_THROWS_AS(j.patch(patch), json::out_of_range&);
883 CHECK_THROWS_WITH(j.patch(patch),
890 json patch = {{{"op", "replace"}, {"path", "/baz"}, {"value", 3}}}; variable
891 CHECK_THROWS_AS(j.patch(patch), json::out_of_range&);
892 CHECK_THROWS_WITH(j.patch(patch),
902 json patch = {{{"op", "move"}}}; variable
903 CHECK_THROWS_AS(j.patch(patch), json::parse_error&);
905 …CHECK_THROWS_WITH(j.patch(patch), "[json.exception.parse_error.105] parse error: (/0) operation 'm…
907 …CHECK_THROWS_WITH(j.patch(patch), "[json.exception.parse_error.105] parse error: operation 'move' …
914 json patch = {{{"op", "move"}, {"path", 1}}}; variable
915 CHECK_THROWS_AS(j.patch(patch), json::parse_error&);
917 …CHECK_THROWS_WITH(j.patch(patch), "[json.exception.parse_error.105] parse error: (/0) operation 'm…
919 …CHECK_THROWS_WITH(j.patch(patch), "[json.exception.parse_error.105] parse error: operation 'move' …
926 json patch = {{{"op", "move"}, {"path", ""}}}; variable
927 CHECK_THROWS_AS(j.patch(patch), json::parse_error&);
929 …CHECK_THROWS_WITH(j.patch(patch), "[json.exception.parse_error.105] parse error: (/0) operation 'm…
931 …CHECK_THROWS_WITH(j.patch(patch), "[json.exception.parse_error.105] parse error: operation 'move' …
938 json patch = {{{"op", "move"}, {"path", ""}, {"from", 1}}}; variable
939 CHECK_THROWS_AS(j.patch(patch), json::parse_error&);
941 …CHECK_THROWS_WITH(j.patch(patch), "[json.exception.parse_error.105] parse error: (/0) operation 'm…
943 …CHECK_THROWS_WITH(j.patch(patch), "[json.exception.parse_error.105] parse error: operation 'move' …
950 json patch = {{{"op", "move"}, {"path", "/0"}, {"from", "/5"}}}; variable
951 CHECK_THROWS_AS(j.patch(patch), json::out_of_range&);
952 CHECK_THROWS_WITH(j.patch(patch),
959 json patch = {{{"op", "move"}, {"path", "/baz"}, {"from", "/baz"}}}; variable
960 CHECK_THROWS_AS(j.patch(patch), json::out_of_range&);
961 CHECK_THROWS_WITH(j.patch(patch),
971 json patch = {{{"op", "copy"}}}; variable
972 CHECK_THROWS_AS(j.patch(patch), json::parse_error&);
974 …CHECK_THROWS_WITH(j.patch(patch), "[json.exception.parse_error.105] parse error: (/0) operation 'c…
976 …CHECK_THROWS_WITH(j.patch(patch), "[json.exception.parse_error.105] parse error: operation 'copy' …
983 json patch = {{{"op", "copy"}, {"path", 1}}}; variable
984 CHECK_THROWS_AS(j.patch(patch), json::parse_error&);
986 …CHECK_THROWS_WITH(j.patch(patch), "[json.exception.parse_error.105] parse error: (/0) operation 'c…
988 …CHECK_THROWS_WITH(j.patch(patch), "[json.exception.parse_error.105] parse error: operation 'copy' …
995 json patch = {{{"op", "copy"}, {"path", ""}}}; variable
996 CHECK_THROWS_AS(j.patch(patch), json::parse_error&);
998 …CHECK_THROWS_WITH(j.patch(patch), "[json.exception.parse_error.105] parse error: (/0) operation 'c…
1000 …CHECK_THROWS_WITH(j.patch(patch), "[json.exception.parse_error.105] parse error: operation 'copy' …
1007 json patch = {{{"op", "copy"}, {"path", ""}, {"from", 1}}}; variable
1008 CHECK_THROWS_AS(j.patch(patch), json::parse_error&);
1010 …CHECK_THROWS_WITH(j.patch(patch), "[json.exception.parse_error.105] parse error: (/0) operation 'c…
1012 …CHECK_THROWS_WITH(j.patch(patch), "[json.exception.parse_error.105] parse error: operation 'copy' …
1019 json patch = {{{"op", "copy"}, {"path", "/0"}, {"from", "/5"}}}; variable
1020 CHECK_THROWS_AS(j.patch(patch), json::out_of_range&);
1021 CHECK_THROWS_WITH(j.patch(patch),
1028 json patch = {{{"op", "copy"}, {"path", "/fob"}, {"from", "/baz"}}}; variable
1029 CHECK_THROWS_AS(j.patch(patch), json::out_of_range&);
1030 CHECK_THROWS_WITH(j.patch(patch),
1040 json patch = {{{"op", "test"}}}; variable
1041 CHECK_THROWS_AS(j.patch(patch), json::parse_error&);
1043 …CHECK_THROWS_WITH(j.patch(patch), "[json.exception.parse_error.105] parse error: (/0) operation 't…
1045 …CHECK_THROWS_WITH(j.patch(patch), "[json.exception.parse_error.105] parse error: operation 'test' …
1052 json patch = {{{"op", "test"}, {"path", 1}}}; variable
1053 CHECK_THROWS_AS(j.patch(patch), json::parse_error&);
1055 …CHECK_THROWS_WITH(j.patch(patch), "[json.exception.parse_error.105] parse error: (/0) operation 't…
1057 …CHECK_THROWS_WITH(j.patch(patch), "[json.exception.parse_error.105] parse error: operation 'test' …
1064 json patch = {{{"op", "test"}, {"path", ""}}}; variable
1065 CHECK_THROWS_AS(j.patch(patch), json::parse_error&);
1067 …CHECK_THROWS_WITH(j.patch(patch), "[json.exception.parse_error.105] parse error: (/0) operation 't…
1069 …CHECK_THROWS_WITH(j.patch(patch), "[json.exception.parse_error.105] parse error: operation 'test' …
1087 // The patch
1088 json patch = R"( variable
1105 CHECK(doc.patch(patch) == result);
1108 CHECK(doc.patch(json::diff(doc, result)) == result);
1125 // The patch
1126 json patch = R"( variable
1144 CHECK(doc.patch(patch) == result);
1147 CHECK(doc.patch(json::diff(doc, result)) == result);
1152 // The patch
1153 json patch = R"( variable
1165 CHECK(doc.patch(patch) == result);
1168 CHECK(doc.patch(json::diff(doc, result)) == result);
1173 // The patch
1174 json patch = R"( variable
1191 CHECK(doc.patch(patch) == result);
1194 CHECK(doc.patch(json::diff(doc, result)) == result);
1199 // The patch
1200 json patch = R"( variable
1220 CHECK(doc.patch(patch) == result);
1223 CHECK(doc.patch(json::diff(doc, result)) == result);
1228 // The patch
1229 json patch = R"( variable
1246 CHECK(doc.patch(patch) == result);
1249 CHECK(doc.patch(json::diff(doc, result)) == result);
1254 // The patch
1255 json patch = R"( variable
1262 CHECK_THROWS_AS(doc.patch(patch), json::other_error&);
1264 …CHECK_THROWS_WITH_STD_STR(doc.patch(patch), "[json.exception.other_error.501] (/0) unsuccessful: "…
1266 …CHECK_THROWS_WITH_STD_STR(doc.patch(patch), "[json.exception.other_error.501] unsuccessful: " + pa…
1276 CHECK(R"( {} )"_json.patch(
1280 CHECK(R"( {"foo": [1, 3]} )"_json.patch(
1284 CHECK(R"( {"foo": [{}]} )"_json.patch(
1291 CHECK(R"( {"foo": "bar"} )"_json.patch(
1295 CHECK(R"( {"foo": [1, 2, 3]} )"_json.patch(
1299 CHECK(R"( {"foo": [{"bar": "baz"}]} )"_json.patch(
1306 CHECK(R"( {"foo": "bar"} )"_json.patch(
1310 CHECK(R"( {"foo": [1, 2, 3]} )"_json.patch(
1314 CHECK(R"( {"foo": [{"bar": "baz"}]} )"_json.patch(
1321 CHECK(R"( {"foo": [1, 2, 3]} )"_json.patch(
1328 CHECK(R"( {"foo": [1, 2, 3]} )"_json.patch(
1335 CHECK_NOTHROW(R"( {"foo": "bar"} )"_json.patch(
1340 SECTION("Tests from github.com/json-patch/json-patch-tests")
1344 TEST_DATA_DIRECTORY "/json-patch-tests/spec_tests.json",
1345 TEST_DATA_DIRECTORY "/json-patch-tests/tests.json"
1363 const auto& patch = test["patch"]; variable
1369 CHECK(doc.patch(patch) == expected);
1373 CHECK_THROWS(doc.patch(patch));