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");
|
var result = MiniYaml.FromString(yaml).First(n => n.Key == "TestB");
|
||||||
Assert.AreEqual(5, result.Location.Line);
|
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