rei-json/tests/stringify.cpp

63 lines
1.3 KiB
C++
Raw Normal View History

2024-11-11 16:36:37 +01:00
#include "rei-json/json.h"
#include <catch2/catch_test_macros.hpp>
#include <string>
TEST_CASE("Stringify json") {
auto objectJson = rei::json::JsonObject{};
objectJson
.set("keyPositiveNumber", 12)
.set("keyNegativeNumber", -13)
.set("keyBooleanTrue", true)
.set("keyBooleanFalse", false)
.set("keyElementDeleted", true) // it will be deleted after
2024-11-11 16:36:37 +01:00
.set("keyString", "YEP")
.set("keyEmptyString", "")
.setNull("keyNull");
2024-11-11 16:36:37 +01:00
rei::json::JsonObject obj{};
obj.set("keyNumberOnObject", 42);
rei::json::JsonArray array{};
array.push(42);
array.push("elemString");
array.push("elementDeleted"); // it will be deleted after
2024-11-11 16:36:37 +01:00
array.push("");
array.push(true);
array.push(false);
array.pushNull();
objectJson.remove("keyElementDeleted");
array.remove(2);
objectJson.set("keyObject", std::move(obj));
objectJson.set("keyArray", std::move(array));
2024-11-11 16:36:37 +01:00
std::string expectedJson = R"({
"keyArray": [
42,
"elemString",
"",
true,
false,
null
],
"keyBooleanFalse": false,
"keyBooleanTrue": true,
"keyEmptyString": "",
"keyNegativeNumber": -13,
"keyNull": null,
"keyObject": {
"keyNumberOnObject": 42
},
"keyPositiveNumber": 12,
"keyString": "YEP"
})";
REQUIRE(rei::json::toString(objectJson) == expectedJson);
}