#include "rei-json/json.h" #include #include #include #include TEST_CASE("Basic json") { auto objectJson = rei::json::JsonObject{}; objectJson .set("keyPositiveNumber", 12) .set("keyNegativeNumber", -13) .set("keyBooleanTrue", true) .set("keyBooleanFalse", false) .set("keyString", "YEP") .set("keyEmptyString", "") .setNull("keyNull"); rei::json::JsonObject obj{}; obj.set("keyNumberOnObject", 42); rei::json::JsonArray array{}; array.push(42); array.push("elemString"); array.push(""); array.push(true); array.push(false); array.pushNull(); objectJson.addObject("keyObject", std::move(obj)); objectJson.addArray("keyArray", std::move(array)); REQUIRE(objectJson.getNumber("keyPositiveNumber") == 12); REQUIRE(objectJson.getNumber("keyNegativeNumber") == -13); REQUIRE(objectJson.getBool("keyBooleanTrue") == true); REQUIRE(objectJson.getBool("keyBooleanFalse") == false); REQUIRE(objectJson.getString("keyString") == "YEP"); REQUIRE(objectJson.getString("keyEmptyString") == ""); REQUIRE(objectJson.getObject("keyObject").getNumber("keyNumberOnObject") == 42); REQUIRE(objectJson.hasNull("keyNull") == true); REQUIRE(objectJson.hasNull("keyPositiveNumber") == false); REQUIRE_THROWS(objectJson.getNumber("nonExistantKey")); auto& arrayJson = objectJson.getArray("keyArray"); REQUIRE(arrayJson.getNumber(0) == 42); REQUIRE(arrayJson.getString(1) == "elemString"); REQUIRE(arrayJson.getString(2) == ""); REQUIRE(arrayJson.getBool(3) == true); REQUIRE(arrayJson.getBool(4) == false); REQUIRE(arrayJson.hasNull(5)); REQUIRE_THROWS(arrayJson.getNumber(99)); }