mirror of
https://github.com/jbeder/yaml-cpp.git
synced 2025-09-09 12:41:17 +00:00
Finished adding old spec tests
This commit is contained in:
@@ -95,12 +95,47 @@ namespace Test
|
|||||||
|
|
||||||
// 2.7
|
// 2.7
|
||||||
TEST TwoDocumentsInAStream() {
|
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
|
// 2.8
|
||||||
TEST PlayByPlayFeed() {
|
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
|
// 2.9
|
||||||
@@ -346,7 +381,44 @@ namespace Test
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 2.28
|
// 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
|
// TODO: 5.1 - 5.2 BOM
|
||||||
|
|
||||||
@@ -615,7 +687,23 @@ namespace Test
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 6.18
|
// 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
|
// 6.19
|
||||||
TEST SecondaryTagHandle() {
|
TEST SecondaryTagHandle() {
|
||||||
@@ -634,7 +722,23 @@ namespace Test
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 6.21
|
// 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
|
// 6.22
|
||||||
TEST GlobalTagPrefix() {
|
TEST GlobalTagPrefix() {
|
||||||
|
Reference in New Issue
Block a user