Add a unit test for merging duplicated yaml nodes.
This commit is contained in:
@@ -169,5 +169,30 @@ TestB:
|
||||
var result = MiniYaml.FromString(yaml).First(n => n.Key == "TestB");
|
||||
Assert.AreEqual(5, result.Location.Line);
|
||||
}
|
||||
|
||||
[TestCase(TestName = "Duplicated nodes are correctly merged")]
|
||||
public void TestSelfMerging()
|
||||
{
|
||||
var baseYaml = @"
|
||||
Test:
|
||||
Merge: original
|
||||
Child: original
|
||||
Original:
|
||||
Test:
|
||||
Merge: override
|
||||
Child: override
|
||||
Override:
|
||||
";
|
||||
|
||||
var result = MiniYaml.Merge(new[] { baseYaml }.Select(s => MiniYaml.FromString(s, "")));
|
||||
Assert.That(result.Count(n => n.Key == "Test"), Is.EqualTo(1), "Result should have exactly one Test node.");
|
||||
|
||||
var testNodes = result.First(n => n.Key == "Test").Value.Nodes;
|
||||
Assert.That(testNodes.Select(n => n.Key), Is.EqualTo(new[] { "Merge", "Original", "Override" }), "Merged Test node has incorrect child nodes.");
|
||||
|
||||
var mergeNode = testNodes.First(n => n.Key == "Merge").Value;
|
||||
Assert.That(mergeNode.Value, Is.EqualTo("override"), "Merge node has incorrect value.");
|
||||
Assert.That(mergeNode.Nodes[0].Value.Value, Is.EqualTo("override"), "Merge node Child value should be 'override', but is not");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user