blob: 851cd0a37707215b4ca8e454e59ebcb722692c0d [file] [log] [blame]
Václav Kubernát5395e712019-12-03 18:24:33 +01001/*
2 * Copyright (C) 2019 CESNET, https://photonics.cesnet.cz/
3 *
4 * Written by Václav Kubernát <kubervac@fit.cvut.cz>
5 *
6*/
7
Václav Kubernát26b56082020-02-03 18:28:56 +01008#include "trompeloeil_doctest.hpp"
Václav Kubernát5395e712019-12-03 18:24:33 +01009#include "ast_path.hpp"
10
11TEST_CASE("path utils")
12{
13 SECTION("pathToDataString")
14 {
15 dataPath_ path;
16 std::string expected;
17 SECTION("example-schema:twoKeyList[first='a'][second='b']")
18 {
19 SECTION("absolute")
20 {
21 path.m_scope = Scope::Absolute;
22 expected += "/";
23 }
24 SECTION("relative")
25 {
26 path.m_scope = Scope::Relative;
27 }
Václav Kubernátfaacd022020-07-08 16:44:38 +020028 path.m_nodes.emplace_back(module_{"example-schema"}, listElement_{"twoKeyList", {{"first", std::string{"a"}}, {"second", std::string{"b"}}}});
Václav Kubernát5395e712019-12-03 18:24:33 +010029 expected += "example-schema:twoKeyList[first='a'][second='b']";
30 }
Václav Kubernát5b8a8f32020-05-20 00:57:22 +020031
32 SECTION("example-schema:addresses[.='0.0.0.0']")
33 {
34 SECTION("absolute")
35 {
36 path.m_scope = Scope::Absolute;
37 expected += "/";
38 }
39 SECTION("relative")
40 {
41 path.m_scope = Scope::Relative;
42 }
Václav Kubernátfaacd022020-07-08 16:44:38 +020043 path.m_nodes.emplace_back(module_{"example-schema"}, leafListElement_{"addresses", std::string{"0.0.0.0"}});
Václav Kubernát5b8a8f32020-05-20 00:57:22 +020044 expected += "example-schema:addresses[.='0.0.0.0']";
45 }
Václav Kubernátefcac932020-01-10 15:26:32 +010046 REQUIRE(pathToDataString(path, Prefixes::WhenNeeded) == expected);
Václav Kubernát5395e712019-12-03 18:24:33 +010047 }
48}