mirror of
https://github.com/jbeder/yaml-cpp.git
synced 2025-09-09 20:51:16 +00:00
Added more explicit doc indicator tests
This commit is contained in:
@@ -418,5 +418,74 @@ namespace Test
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool ExplicitEndDoc()
|
||||||
|
{
|
||||||
|
std::string input = "- one\n- two\n...\n...";
|
||||||
|
|
||||||
|
std::stringstream stream(input);
|
||||||
|
YAML::Parser parser(stream);
|
||||||
|
YAML::Node doc;
|
||||||
|
parser.GetNextDocument(doc);
|
||||||
|
|
||||||
|
if(doc.size() != 2)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
std::string output;
|
||||||
|
doc[0] >> output;
|
||||||
|
if(output != "one")
|
||||||
|
return false;
|
||||||
|
doc[1] >> output;
|
||||||
|
if(output != "two")
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool MultipleDocsWithSomeExplicitIndicators()
|
||||||
|
{
|
||||||
|
std::string input =
|
||||||
|
"- one\n- two\n...\n"
|
||||||
|
"---\nkey: value\n...\n...\n"
|
||||||
|
"- three\n- four\n"
|
||||||
|
"---\nkey: value";
|
||||||
|
|
||||||
|
std::stringstream stream(input);
|
||||||
|
YAML::Parser parser(stream);
|
||||||
|
YAML::Node doc;
|
||||||
|
std::string output;
|
||||||
|
|
||||||
|
parser.GetNextDocument(doc);
|
||||||
|
if(doc.size() != 2)
|
||||||
|
return false;
|
||||||
|
doc[0] >> output;
|
||||||
|
if(output != "one")
|
||||||
|
return false;
|
||||||
|
doc[1] >> output;
|
||||||
|
if(output != "two")
|
||||||
|
return false;
|
||||||
|
|
||||||
|
parser.GetNextDocument(doc);
|
||||||
|
doc["key"] >> output;
|
||||||
|
if(output != "value")
|
||||||
|
return false;
|
||||||
|
|
||||||
|
parser.GetNextDocument(doc);
|
||||||
|
if(doc.size() != 2)
|
||||||
|
return false;
|
||||||
|
doc[0] >> output;
|
||||||
|
if(output != "three")
|
||||||
|
return false;
|
||||||
|
doc[1] >> output;
|
||||||
|
if(output != "four")
|
||||||
|
return false;
|
||||||
|
|
||||||
|
parser.GetNextDocument(doc);
|
||||||
|
doc["key"] >> output;
|
||||||
|
if(output != "value")
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -271,6 +271,8 @@ namespace Test
|
|||||||
RunParserTest(&Parser::AliasWithNull, "alias with null", passed);
|
RunParserTest(&Parser::AliasWithNull, "alias with null", passed);
|
||||||
RunParserTest(&Parser::ExplicitDoc, "explicit doc", passed);
|
RunParserTest(&Parser::ExplicitDoc, "explicit doc", passed);
|
||||||
RunParserTest(&Parser::MultipleDocs, "multiple docs", passed);
|
RunParserTest(&Parser::MultipleDocs, "multiple docs", passed);
|
||||||
|
RunParserTest(&Parser::ExplicitEndDoc, "explicit end doc", passed);
|
||||||
|
RunParserTest(&Parser::MultipleDocsWithSomeExplicitIndicators, "multiple docs with some explicit indicators", passed);
|
||||||
|
|
||||||
RunEncodingTest(&EncodeToUtf8, false, "UTF-8, no BOM", passed);
|
RunEncodingTest(&EncodeToUtf8, false, "UTF-8, no BOM", passed);
|
||||||
RunEncodingTest(&EncodeToUtf8, true, "UTF-8 with BOM", passed);
|
RunEncodingTest(&EncodeToUtf8, true, "UTF-8 with BOM", passed);
|
||||||
|
@@ -42,6 +42,8 @@ namespace Test {
|
|||||||
bool AliasWithNull();
|
bool AliasWithNull();
|
||||||
bool ExplicitDoc();
|
bool ExplicitDoc();
|
||||||
bool MultipleDocs();
|
bool MultipleDocs();
|
||||||
|
bool ExplicitEndDoc();
|
||||||
|
bool MultipleDocsWithSomeExplicitIndicators();
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace Emitter {
|
namespace Emitter {
|
||||||
|
Reference in New Issue
Block a user