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)
|
2024-11-22 17:53:00 +01:00
|
|
|
.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-22 17:53:00 +01:00
|
|
|
|
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");
|
2024-11-22 17:53:00 +01:00
|
|
|
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();
|
|
|
|
|
2024-11-22 17:53:00 +01:00
|
|
|
|
|
|
|
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);
|
|
|
|
}
|
|
|
|
|
|
|
|
|