| /* |
| * Copyright (C) 2019 CESNET, https://photonics.cesnet.cz/ |
| * |
| * Written by Václav Kubernát <kubervac@fit.cvut.cz> |
| * |
| */ |
| |
| #include "trompeloeil_doctest.hpp" |
| #include "ast_path.hpp" |
| |
| TEST_CASE("path utils") |
| { |
| SECTION("pathToDataString") |
| { |
| dataPath_ path; |
| std::string expected; |
| SECTION("example-schema:twoKeyList[first='a'][second='b']") |
| { |
| SECTION("absolute") |
| { |
| path.m_scope = Scope::Absolute; |
| expected += "/"; |
| } |
| SECTION("relative") |
| { |
| path.m_scope = Scope::Relative; |
| } |
| path.m_nodes.emplace_back(module_{"example-schema"}, listElement_{"twoKeyList", {{"first", std::string{"a"}}, {"second", std::string{"b"}}}}); |
| expected += "example-schema:twoKeyList[first='a'][second='b']"; |
| } |
| |
| SECTION("example-schema:addresses[.='0.0.0.0']") |
| { |
| SECTION("absolute") |
| { |
| path.m_scope = Scope::Absolute; |
| expected += "/"; |
| } |
| SECTION("relative") |
| { |
| path.m_scope = Scope::Relative; |
| } |
| path.m_nodes.emplace_back(module_{"example-schema"}, leafListElement_{"addresses", std::string{"0.0.0.0"}}); |
| expected += "example-schema:addresses[.='0.0.0.0']"; |
| } |
| REQUIRE(pathToDataString(path, Prefixes::WhenNeeded) == expected); |
| } |
| } |