xref: /third_party/json/tests/src/unit-udl.cpp (revision c5f01b2f)
1//     __ _____ _____ _____
2//  __|  |   __|     |   | |  JSON for Modern C++ (supporting code)
3// |  |  |__   |  |  | | | |  version 3.11.2
4// |_____|_____|_____|_|___|  https://github.com/nlohmann/json
5//
6// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>
7// SPDX-License-Identifier: MIT
8
9#include "doctest_compatibility.h"
10
11#include <nlohmann/json.hpp>
12
13TEST_CASE("user-defined string literals")
14{
15    auto j_expected = nlohmann::json::parse(R"({"foo": "bar", "baz": 42})");
16    auto ptr_expected = nlohmann::json::json_pointer("/foo/bar");
17
18    SECTION("using namespace nlohmann::literals::json_literals")
19    {
20        using namespace nlohmann::literals::json_literals; // NOLINT(google-build-using-namespace)
21
22        CHECK(R"({"foo": "bar", "baz": 42})"_json == j_expected);
23        CHECK("/foo/bar"_json_pointer == ptr_expected);
24    }
25
26    SECTION("using namespace nlohmann::json_literals")
27    {
28        using namespace nlohmann::json_literals; // NOLINT(google-build-using-namespace)
29
30        CHECK(R"({"foo": "bar", "baz": 42})"_json == j_expected);
31        CHECK("/foo/bar"_json_pointer == ptr_expected);
32    }
33
34    SECTION("using namespace nlohmann::literals")
35    {
36        using namespace nlohmann::literals; // NOLINT(google-build-using-namespace)
37
38        CHECK(R"({"foo": "bar", "baz": 42})"_json == j_expected);
39        CHECK("/foo/bar"_json_pointer == ptr_expected);
40    }
41
42    SECTION("using namespace nlohmann")
43    {
44        using namespace nlohmann; // NOLINT(google-build-using-namespace)
45
46        CHECK(R"({"foo": "bar", "baz": 42})"_json == j_expected);
47        CHECK("/foo/bar"_json_pointer == ptr_expected);
48    }
49
50#ifndef JSON_TEST_NO_GLOBAL_UDLS
51    SECTION("global namespace")
52    {
53        CHECK(R"({"foo": "bar", "baz": 42})"_json == j_expected);
54        CHECK("/foo/bar"_json_pointer == ptr_expected);
55    }
56#endif
57}
58