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