#include #include #include #include "config.hpp" #include #include "dinkyecs.hpp" using namespace fmt; using std::string; TEST_CASE("basic configuration system", "[config]") { Config config("./tests/config.json"); auto not_found = config["types"]["NOTFOUND"]; REQUIRE(not_found == nullptr); auto test_string = config["types"]["STRING"]; REQUIRE(test_string == L"\u2849█Ω♣"); std::wstring test_wstring = config.wstring("types", "STRING"); REQUIRE(test_wstring == L"\u2849█Ω♣"); wchar_t chr0 = test_wstring[0]; REQUIRE(chr0 == L'\u2849'); auto test_num = config["types"]["NUMBER"]; REQUIRE(test_num == 1234); auto test_float = config["types"]["FLOAT"]; REQUIRE(test_num >= 0.1233f); auto test_obj = config["types"]["OBJECT"]; REQUIRE(test_obj["name"] == "Zed"); } void test_func(Config &ref) { REQUIRE(ref["types"]["OBJECT"]["name"] == "Zed"); } TEST_CASE("store config in any", "[config]") { Config config("./tests/config.json"); test_func(config); }