diff --git a/tests/src/unit-udl.cpp b/tests/src/unit-udl.cpp new file mode 100644 index 000000000..c701fd55e --- /dev/null +++ b/tests/src/unit-udl.cpp @@ -0,0 +1,51 @@ +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ (supporting code) +// | | |__ | | | | | | version 3.10.5 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann +// SPDX-License-Identifier: MIT + +#include "doctest_compatibility.h" + +#undef JSON_USE_GLOBAL_UDLS +#define JSON_USE_GLOBAL_UDLS 0 +#include + +TEST_CASE("user-defined string literals") +{ + auto j_expected = nlohmann::json::parse(R"({"foo": "bar", "baz": 42})"); + auto ptr_expected = nlohmann::json::json_pointer("/foo/bar"); + + SECTION("using namespace nlohmann::literals::json_literals") + { + using namespace nlohmann::literals::json_literals; // NOLINT(google-build-using-namespace) + + CHECK(R"({"foo": "bar", "baz": 42})"_json == j_expected); + CHECK("/foo/bar"_json_pointer == ptr_expected); + } + + SECTION("using namespace nlohmann::json_literals") + { + using namespace nlohmann::json_literals; // NOLINT(google-build-using-namespace) + + CHECK(R"({"foo": "bar", "baz": 42})"_json == j_expected); + CHECK("/foo/bar"_json_pointer == ptr_expected); + } + + SECTION("using namespace nlohmann::literals") + { + using namespace nlohmann::literals; // NOLINT(google-build-using-namespace) + + CHECK(R"({"foo": "bar", "baz": 42})"_json == j_expected); + CHECK("/foo/bar"_json_pointer == ptr_expected); + } + + SECTION("using namespace nlohmann") + { + using namespace nlohmann; // NOLINT(google-build-using-namespace) + + CHECK(R"({"foo": "bar", "baz": 42})"_json == j_expected); + CHECK("/foo/bar"_json_pointer == ptr_expected); + } +}