summaryrefslogtreecommitdiff
path: root/json4cpp/tests/src/unit-udl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'json4cpp/tests/src/unit-udl.cpp')
-rw-r--r--json4cpp/tests/src/unit-udl.cpp57
1 files changed, 57 insertions, 0 deletions
diff --git a/json4cpp/tests/src/unit-udl.cpp b/json4cpp/tests/src/unit-udl.cpp
new file mode 100644
index 0000000000..405f4792d5
--- /dev/null
+++ b/json4cpp/tests/src/unit-udl.cpp
@@ -0,0 +1,57 @@
+// __ _____ _____ _____
+// __| | __| | | | JSON for Modern C++ (supporting code)
+// | | |__ | | | | | | version 3.12.0
+// |_____|_____|_____|_|___| https://github.com/nlohmann/json
+//
+// SPDX-FileCopyrightText: 2013-2026 Niels Lohmann <https://nlohmann.me>
+// SPDX-License-Identifier: MIT
+
+#include "doctest_compatibility.h"
+
+#include <nlohmann/json.hpp>
+
+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);
+ }
+
+#ifndef JSON_TEST_NO_GLOBAL_UDLS
+ SECTION("global namespace")
+ {
+ CHECK(R"({"foo": "bar", "baz": 42})"_json == j_expected);
+ CHECK("/foo/bar"_json_pointer == ptr_expected);
+ }
+#endif
+}