anchor and alias test add for embedding map in a seq with newline. #902

This commit is contained in:
Raffaello Bertini 2020-06-23 13:27:09 +01:00
parent 8c55a70548
commit 73390d5b5f
2 changed files with 52 additions and 11 deletions

View File

@ -175,7 +175,7 @@ void EmitterState::EndedGroup(GroupType::value type) {
// some global settings that we changed may have been overridden
// by a local setting we just popped, so we need to restore them
m_globalModifiedSettings.restore();
ClearModifiedSettings();
m_hasAnchor = false;
m_hasTag = false;

View File

@ -1235,17 +1235,58 @@ TEST_F(EmitterTest, ComplexFlowSeqEmbeddingAMapWithNewLine) {
out << YAML::EndMap;
ExpectEmit(
"NodeA:\n"
" k: [{i: 0},\n"
" {i: 1},\n"
" ]\n"
"NodeB:\n"
" k: [{i: 0},\n"
" {i: 1},\n"
" ]"
);
ExpectEmit(R"(NodeA:
k: [{i: 0},
{i: 1},
]
NodeB:
k: [{i: 0},
{i: 1},
])");
}
TEST_F(EmitterTest, ComplexFlowSeqEmbeddingAMapWithNewLineUsingAliases) {
out << BeginMap;
out << Key << "Node" << Anchor("Node") << Value << BeginMap;
out << Key << "k" << Value << Flow << BeginSeq;
out << BeginMap << Key << "i" << Value << 0 << EndMap;
out << YAML::Newline;
out << BeginMap << Key << "i" << Value << 1 << EndMap;
out << YAML::Newline;
out << EndSeq << EndMap;
out << Key << "NodeA" << Alias("Node");
out << Key << "NodeB" << Alias("Node");
out << EndMap;
ExpectEmit(R"(Node: &Node
k: [{i: 0},
{i: 1},
]
NodeA: *Node
NodeB: *Node)");
}
TEST_F(EmitterTest, ComplexFlowSeqEmbeddingAMapUsingAliases) {
out << BeginMap;
out << Key << "Node" << Anchor("Node") << Value << BeginMap;
out << Key << "k" << Value << Flow << BeginSeq;
out << BeginMap << Key << "i" << Value << 0 << EndMap;
out << BeginMap << Key << "i" << Value << 1 << EndMap;
out << EndSeq << EndMap;
out << Key << "NodeA" << Alias("Node");
out << Key << "NodeB" << Alias("Node");
out << EndMap;
ExpectEmit(R"(Node: &Node
k: [{i: 0}, {i: 1}]
NodeA: *Node
NodeB: *Node)");
}
class EmitterErrorTest : public ::testing::Test {