public void TestTocRestructureWithRestructureConflicts() { var toc = GetTocItem(@" root node1 leaf1 leaf2 leaf3 node2 node1 "); var restructures = new List <TreeItemRestructure> { GetRestructure(TreeItemActionType.InsertAfter, "node2", new string[] { "leaf4", "leaf5" }), GetRestructure(TreeItemActionType.DeleteSelf, "node2", new string[] { "leaf6", "leaf7" }), GetRestructure(TreeItemActionType.ReplaceSelf, "node2", new string[] { "leaf8", "leaf9" }), GetRestructure(TreeItemActionType.InsertBefore, "node2", new string[] { "leaf10", "leaf11" }), }; TocRestructureUtility.Restructure(toc, restructures); var expected = GetTocItem(@" root node1 leaf1 leaf2 leaf3 leaf4 leaf5 "); AssertTocEqual(expected, toc); }
public void TestTocRestructureWithNoMatchNode() { var layout = @" root node1 leaf1 node2 leaf2 leaf3 leaf3 "; var toc = GetTocItem(layout); var restructures = new List <TreeItemRestructure> { GetRestructure(TreeItemActionType.AppendChild, "leaf100", new string[] { "leaf2.1", "leaf2.2" }), GetRestructure(TreeItemActionType.PrependChild, "leaf100", new string[] { "leaf2.1", "leaf2.2" }), GetRestructure(TreeItemActionType.InsertAfter, "leaf100", new string[] { "leaf4", "leaf5" }), GetRestructure(TreeItemActionType.InsertBefore, "leaf100", new string[] { "node2", "node3" }), GetRestructure(TreeItemActionType.DeleteSelf, "leaf100", new string[] { "leaf6", "leaf7" }), GetRestructure(TreeItemActionType.ReplaceSelf, "leaf100", new string[] { "leaf6", "leaf7" }), }; TocRestructureUtility.Restructure(toc, restructures); var expected = GetTocItem(layout); AssertTocEqual(expected, toc); }
public void TestTocRestructureWithContainerNode() { var toc = GetTocItem(@" root node1 leaf1 node2 leaf2 leaf3 node3 leaf3.1 leaf3.2 node4 node5 leaf4.1 leaf4.2 "); var restructures = new List <TreeItemRestructure> { GetRestructure(TreeItemActionType.AppendChild, "node2", new string[] { "leaf2.1" }), GetRestructure(TreeItemActionType.AppendChild, "node2", new string[] { "leaf2.2" }), GetRestructure(TreeItemActionType.PrependChild, "node2", new string[] { "leaf2.3", "leaf2.4" }), GetRestructure(TreeItemActionType.InsertAfter, "node2", new string[] { "leaf4", "leaf5" }), GetRestructure(TreeItemActionType.InsertBefore, "node2", new string[] { "node2", "node3" }), GetRestructure(TreeItemActionType.DeleteSelf, "node3", null), GetRestructure(TreeItemActionType.ReplaceSelf, "node4", new string[] { "leaf6" }), }; TocRestructureUtility.Restructure(toc, restructures); var expected = GetTocItem(@" root node1 leaf1 node2 node3 node2 leaf2.3 leaf2.4 leaf2 leaf3 leaf2.1 leaf2.2 leaf4 leaf5 leaf6 "); AssertTocEqual(expected, toc); }
public void TestReplaceNodeWithMultipleNodesThrows() { var toc = GetTocItem(@" root node1 leaf1 leaf2 leaf3 node2 node1 "); var restructures = new List <TreeItemRestructure> { GetRestructure(TreeItemActionType.ReplaceSelf, "node2", new string[] { "leaf4", "leaf5" }), }; Assert.Throws <InvalidOperationException>(() => TocRestructureUtility.Restructure(toc, restructures)); }
public void TestTocRestructureAppliesToAllMatchedNodes() { var toc = GetTocItem(@" root node1 leaf1 leaf3 leaf3 node2 node1 "); var restructures = new List <TreeItemRestructure> { GetRestructure(TreeItemActionType.AppendChild, "node1", new string[] { "leaf3", "leaf4" }), GetRestructure(TreeItemActionType.InsertBefore, "leaf3", new string[] { "leaf3.1", "leaf3.2" }), }; // After leaf3 is appended as child, leaf3.1 and leaf3.2 should insert before leaf3. TocRestructureUtility.Restructure(toc, restructures); var expected = GetTocItem(@" root node1 leaf1 leaf3.1 leaf3.2 leaf3 leaf3.1 leaf3.2 leaf3 leaf4 leaf3.1 leaf3.2 leaf3 node2 node1 leaf3.1 leaf3.2 leaf3 leaf4 "); AssertTocEqual(expected, toc); }