public void KeyValueNode_Factory_creates_root_node_with_value() { // ACT var result = KeyValueNode.RootNode <string, int>(value: 0); // ASSERT Assert.Equal(0, result.Value); Assert.False(result.HasKey); Assert.False(result.HasChildNodes); Assert.False(result.ChildNodes.Any()); }
public void KeyValueNode_fails_gracefully_on_removing_childnode_by_unkown_key() { // ARRANGE var root = KeyValueNode.RootNode <string, int>(0, KeyValueNode.InnerNode("a", 0)); // ACT var result = root.Remove("x"); // ASSERT Assert.False(result); Assert.Single(root.ChildNodes); }
public void KeyValueNode_removes_childnode_by_key() { // ARRANGE var root = KeyValueNode.RootNode <string, int>(0, KeyValueNode.InnerNode("a", 0)); // ACT var result = root.Remove("a"); // ASSERT Assert.True(result); Assert.False(root.ChildNodes.Any()); }
public void KeyValueNode_substitutes_child_node_by_Key() { // ARRANGE var root = KeyValueNode.RootNode <string, int>(0, KeyValueNode.InnerNode("a", 0)); var child = KeyValueNode.InnerNode("a", 1); // ACT root.Set(child); // ASSERT Assert.Same(child, root.ChildNodes.Single()); }
public void KeyValueNode_adds_childnode_fails_on_duplicate_key() { // ARRANGE var root = KeyValueNode.RootNode <string, int>(0, KeyValueNode.InnerNode("a", 0)); var child = KeyValueNode.InnerNode("a", 1); // ACT var result = Assert.Throws <InvalidOperationException>(() => root.Add(child)); // ASSERT Assert.True(root.HasChildNodes); Assert.NotSame(child, root.ChildNodes.Single()); }
public void KeyValueNode_adds_childnode() { // ARRANGE var root = KeyValueNode.RootNode <string, int>(0); var child = KeyValueNode.InnerNode("a", 1); // ACT root.Add(child); // ASSERT Assert.True(root.HasChildNodes); Assert.Same(child, root.ChildNodes.Single()); }
public void KeyValueNode_Factory_creates_root_node_with_childNodes_and_grandchildren() { // ACT var result = KeyValueNode.RootNode <string, int>(0, KeyValueNode.InnerNode("a", 1, KeyValueNode.InnerNode("b", 2))); // ASSERT Assert.True(result.HasChildNodes); Assert.Equal("a", result.ChildNodes.Single().Key); Assert.True(result.ChildNodes.Single().HasChildNodes); Assert.Equal("b", result.ChildNodes.Single().ChildNodes.Single().Key); (var found, var child) = result.TryGetChildNode("a"); Assert.True(found); Assert.Equal("a", child.Key); }