summaryrefslogtreecommitdiffstats
path: root/library/cpp/yaml/fyamlcpp/fyamlcpp_ut.cpp
diff options
context:
space:
mode:
authorinnokentii <[email protected]>2023-03-02 13:04:09 +0300
committerinnokentii <[email protected]>2023-03-02 13:04:09 +0300
commit502e6daf19bdde912acdb7fff06f1e69e9ccfddf (patch)
treefc85748caec9a506aae3d7821b42c2c3d5ac1a46 /library/cpp/yaml/fyamlcpp/fyamlcpp_ut.cpp
parented0c1088f25e4078c42314bc9c0d67ac971a0710 (diff)
Add multidoc support to fyamlcpp
add multidoc support to libfyaml
Diffstat (limited to 'library/cpp/yaml/fyamlcpp/fyamlcpp_ut.cpp')
-rw-r--r--library/cpp/yaml/fyamlcpp/fyamlcpp_ut.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/library/cpp/yaml/fyamlcpp/fyamlcpp_ut.cpp b/library/cpp/yaml/fyamlcpp/fyamlcpp_ut.cpp
index f9aab7b011b..94093c4157b 100644
--- a/library/cpp/yaml/fyamlcpp/fyamlcpp_ut.cpp
+++ b/library/cpp/yaml/fyamlcpp/fyamlcpp_ut.cpp
@@ -50,4 +50,40 @@ test: output
UNIT_ASSERT_VALUES_EQUAL(ss.Str(), "test: output\n");
}
+
+ Y_UNIT_TEST(Parser) {
+ const char *yaml = R"(
+test: a
+---
+test: b
+)";
+ auto parser = NFyaml::TParser::Create(yaml);
+
+ TStringStream ss;
+
+ auto docOpt = parser.NextDocument();
+ UNIT_ASSERT(docOpt);
+ ss << *docOpt;
+ UNIT_ASSERT_VALUES_EQUAL(ss.Str(), "test: a\n");
+ auto beginMark = docOpt->BeginMark();
+ UNIT_ASSERT_VALUES_EQUAL(beginMark.InputPos, 1);
+ auto endMark = docOpt->EndMark();
+ UNIT_ASSERT_VALUES_EQUAL(endMark.InputPos, 12);
+ UNIT_ASSERT_VALUES_EQUAL(TStringBuf(yaml).SubStr(beginMark.InputPos, endMark.InputPos - 4), ss.Str());
+
+ ss.clear();
+
+ auto docOpt2 = parser.NextDocument();
+ UNIT_ASSERT(docOpt2);
+ ss << *docOpt2;
+ UNIT_ASSERT_VALUES_EQUAL(ss.Str(), "---\ntest: b\n");
+ beginMark = docOpt2->BeginMark();
+ UNIT_ASSERT_VALUES_EQUAL(beginMark.InputPos, 9);
+ endMark = docOpt2->EndMark();
+ UNIT_ASSERT_VALUES_EQUAL(endMark.InputPos, 21);
+ UNIT_ASSERT_VALUES_EQUAL(TStringBuf(yaml).SubStr(beginMark.InputPos, endMark.InputPos), ss.Str());
+
+ auto docOpt3 = parser.NextDocument();
+ UNIT_ASSERT(!docOpt3);
+ }
}