mirror of
https://github.com/jbeder/yaml-cpp.git
synced 2025-09-09 04:41:16 +00:00
Finished adding old spec tests
This commit is contained in:
@@ -95,12 +95,47 @@ namespace Test
|
||||
|
||||
// 2.7
|
||||
TEST TwoDocumentsInAStream() {
|
||||
return " not written yet";
|
||||
std::vector<YAML::Node> docs = YAML::LoadAll(ex2_7);
|
||||
YAML_ASSERT(docs.size() == 2);
|
||||
|
||||
{
|
||||
YAML::Node doc = docs[0];
|
||||
YAML_ASSERT(doc.size() == 3);
|
||||
YAML_ASSERT(doc[0].as<std::string>() == "Mark McGwire");
|
||||
YAML_ASSERT(doc[1].as<std::string>() == "Sammy Sosa");
|
||||
YAML_ASSERT(doc[2].as<std::string>() == "Ken Griffey");
|
||||
}
|
||||
|
||||
{
|
||||
YAML::Node doc = docs[1];
|
||||
YAML_ASSERT(doc.size() == 2);
|
||||
YAML_ASSERT(doc[0].as<std::string>() == "Chicago Cubs");
|
||||
YAML_ASSERT(doc[1].as<std::string>() == "St Louis Cardinals");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// 2.8
|
||||
TEST PlayByPlayFeed() {
|
||||
return " not written yet";
|
||||
std::vector<YAML::Node> docs = YAML::LoadAll(ex2_8);
|
||||
YAML_ASSERT(docs.size() == 2);
|
||||
|
||||
{
|
||||
YAML::Node doc = docs[0];
|
||||
YAML_ASSERT(doc.size() == 3);
|
||||
YAML_ASSERT(doc["time"].as<std::string>() == "20:03:20");
|
||||
YAML_ASSERT(doc["player"].as<std::string>() == "Sammy Sosa");
|
||||
YAML_ASSERT(doc["action"].as<std::string>() == "strike (miss)");
|
||||
}
|
||||
|
||||
{
|
||||
YAML::Node doc = docs[1];
|
||||
YAML_ASSERT(doc.size() == 3);
|
||||
YAML_ASSERT(doc["time"].as<std::string>() == "20:03:47");
|
||||
YAML_ASSERT(doc["player"].as<std::string>() == "Sammy Sosa");
|
||||
YAML_ASSERT(doc["action"].as<std::string>() == "grand slam");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// 2.9
|
||||
@@ -346,7 +381,44 @@ namespace Test
|
||||
}
|
||||
|
||||
// 2.28
|
||||
TEST LogFile() { return " not written yet"; }
|
||||
TEST LogFile() {
|
||||
std::vector<YAML::Node> docs = YAML::LoadAll(ex2_28);
|
||||
YAML_ASSERT(docs.size() == 3);
|
||||
|
||||
{
|
||||
YAML::Node doc = docs[0];
|
||||
YAML_ASSERT(doc.size() == 3);
|
||||
YAML_ASSERT(doc["Time"].as<std::string>() == "2001-11-23 15:01:42 -5");
|
||||
YAML_ASSERT(doc["User"].as<std::string>() == "ed");
|
||||
YAML_ASSERT(doc["Warning"].as<std::string>() == "This is an error message for the log file");
|
||||
}
|
||||
|
||||
{
|
||||
YAML::Node doc = docs[1];
|
||||
YAML_ASSERT(doc.size() == 3);
|
||||
YAML_ASSERT(doc["Time"].as<std::string>() == "2001-11-23 15:02:31 -5");
|
||||
YAML_ASSERT(doc["User"].as<std::string>() == "ed");
|
||||
YAML_ASSERT(doc["Warning"].as<std::string>() == "A slightly different error message.");
|
||||
}
|
||||
|
||||
{
|
||||
YAML::Node doc = docs[2];
|
||||
YAML_ASSERT(doc.size() == 4);
|
||||
YAML_ASSERT(doc["Date"].as<std::string>() == "2001-11-23 15:03:17 -5");
|
||||
YAML_ASSERT(doc["User"].as<std::string>() == "ed");
|
||||
YAML_ASSERT(doc["Fatal"].as<std::string>() == "Unknown variable \"bar\"");
|
||||
YAML_ASSERT(doc["Stack"].size() == 2);
|
||||
YAML_ASSERT(doc["Stack"][0].size() == 3);
|
||||
YAML_ASSERT(doc["Stack"][0]["file"].as<std::string>() == "TopClass.py");
|
||||
YAML_ASSERT(doc["Stack"][0]["line"].as<std::string>() == "23");
|
||||
YAML_ASSERT(doc["Stack"][0]["code"].as<std::string>() == "x = MoreObject(\"345\\n\")\n");
|
||||
YAML_ASSERT(doc["Stack"][1].size() == 3);
|
||||
YAML_ASSERT(doc["Stack"][1]["file"].as<std::string>() == "MoreClass.py");
|
||||
YAML_ASSERT(doc["Stack"][1]["line"].as<std::string>() == "58");
|
||||
YAML_ASSERT(doc["Stack"][1]["code"].as<std::string>() == "foo = bar");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// TODO: 5.1 - 5.2 BOM
|
||||
|
||||
@@ -615,7 +687,23 @@ namespace Test
|
||||
}
|
||||
|
||||
// 6.18
|
||||
TEST PrimaryTagHandle() { return " not written yet"; }
|
||||
TEST PrimaryTagHandle() {
|
||||
std::vector<YAML::Node> docs = YAML::LoadAll(ex6_18);
|
||||
YAML_ASSERT(docs.size() == 2);
|
||||
|
||||
{
|
||||
YAML::Node doc = docs[0];
|
||||
YAML_ASSERT(doc.Tag() == "!foo");
|
||||
YAML_ASSERT(doc.as<std::string>() == "bar");
|
||||
}
|
||||
|
||||
{
|
||||
YAML::Node doc = docs[1];
|
||||
YAML_ASSERT(doc.Tag() == "tag:example.com,2000:app/foo");
|
||||
YAML_ASSERT(doc.as<std::string>() == "bar");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// 6.19
|
||||
TEST SecondaryTagHandle() {
|
||||
@@ -634,7 +722,23 @@ namespace Test
|
||||
}
|
||||
|
||||
// 6.21
|
||||
TEST LocalTagPrefix() { return " not written yet"; }
|
||||
TEST LocalTagPrefix() {
|
||||
std::vector<YAML::Node> docs = YAML::LoadAll(ex6_21);
|
||||
YAML_ASSERT(docs.size() == 2);
|
||||
|
||||
{
|
||||
YAML::Node doc = docs[0];
|
||||
YAML_ASSERT(doc.Tag() == "!my-light");
|
||||
YAML_ASSERT(doc.as<std::string>() == "fluorescent");
|
||||
}
|
||||
|
||||
{
|
||||
YAML::Node doc = docs[1];
|
||||
YAML_ASSERT(doc.Tag() == "!my-light");
|
||||
YAML_ASSERT(doc.as<std::string>() == "green");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// 6.22
|
||||
TEST GlobalTagPrefix() {
|
||||
|
Reference in New Issue
Block a user