SceneSwitcher/tests/test-json.cpp
2025-04-22 15:35:45 +02:00

68 lines
1.7 KiB
C++

#include "catch.hpp"
#include <json-helpers.hpp>
TEST_CASE("FormatJsonString", "[json-helpers]")
{
auto result = advss::FormatJsonString(QString(""));
REQUIRE(result == "");
result = advss::FormatJsonString(QString("abc"));
REQUIRE(result == "");
result = advss::FormatJsonString(QString("{}"));
REQUIRE(result == "{\n}\n");
result = advss::FormatJsonString(QString("{\"test\":true}"));
REQUIRE(result == "{\n \"test\": true\n}\n");
}
TEST_CASE("MatchJson", "[json-helpers]")
{
advss::RegexConfig regex;
bool result = advss::MatchJson("", "", regex);
REQUIRE(result == true);
result = advss::MatchJson("a", "", regex);
REQUIRE(result == false);
result = advss::MatchJson("{}", "abc", regex);
REQUIRE(result == false);
result = advss::MatchJson("{}", "{}", regex);
REQUIRE(result == true);
result = advss::MatchJson("{\"test\":true}",
"{\n \"test\": true\n}\n", regex);
REQUIRE(result == true);
regex.SetEnabled(true);
result = advss::MatchJson("", "{\n \"test\": true\n}\n", regex);
REQUIRE(result == false);
result = advss::MatchJson("{\"test\":true}",
"{\n \"test\": true\n}\n", regex);
REQUIRE(result == true);
result = advss::MatchJson("{\n \"test\": true\n}\n", "(.|\\n)*",
regex);
REQUIRE(result == true);
result = advss::MatchJson("{\n \"test\": true\n}\n", "(", regex);
REQUIRE(result == false);
}
TEST_CASE("GetJsonField", "[utility]")
{
auto result = advss::GetJsonField("{}", "");
REQUIRE_FALSE(result);
result = advss::GetJsonField("{}", "not there");
REQUIRE_FALSE(result);
result = advss::GetJsonField("invalid json", "not there");
REQUIRE_FALSE(result);
result = advss::GetJsonField("{ \"test\": 1 }", "test");
REQUIRE(*result == "1");
}