public void ExecuteXElementVariation(XNode[] toAdd, XNode contextNode) { IEnumerable<XNode> allNodes, toAddList = toAdd.OfType<XNode>(); XElement xElem = contextNode == null ? new XElement("root") : new XElement("root", contextNode); XElement xElemOriginal = new XElement(xElem); using (UndoManager undo = new UndoManager(xElem)) { undo.Group(); using (EventsHelper elemHelper = new EventsHelper(xElem)) { xElem.Add(toAdd); allNodes = contextNode == null ? xElem.Nodes() : contextNode.NodesAfterSelf(); Assert.True(toAddList.SequenceEqual(allNodes, XNode.EqualityComparer), "Nodes not added correctly!"); elemHelper.Verify(XObjectChange.Add, toAdd); } undo.Undo(); Assert.True(xElem.Nodes().SequenceEqual(xElemOriginal.Nodes(), XNode.EqualityComparer), "Undo did not work!"); Assert.True(xElem.Attributes().EqualsAllAttributes(xElemOriginal.Attributes(), Helpers.MyAttributeComparer), "Undo did not work!"); } }
private string parseXml(XNode root, int tabs) { string result = "<br />"; if (root != null) { for (int i = 0; i < tabs; i++) { result += " "; } result += root.ToString(); } for (int i = 0; i < root.NodesAfterSelf().Count(); i++) { result += parseXml(root.NodesAfterSelf().ElementAt(i), tabs + 1); } return result; }
public void ExecuteXDocumentVariation(XNode[] toAdd, XNode contextNode) { IEnumerable<XNode> allNodes, toAddList = toAdd.OfType<XNode>(); XDocument xDoc = contextNode == null ? new XDocument() : new XDocument(contextNode); XDocument xDocOriginal = new XDocument(xDoc); using (UndoManager undo = new UndoManager(xDoc)) { undo.Group(); using (EventsHelper docHelper = new EventsHelper(xDoc)) { xDoc.Add(toAdd); allNodes = contextNode == null ? xDoc.Nodes() : contextNode.NodesAfterSelf(); Assert.True(toAddList.SequenceEqual(allNodes, XNode.EqualityComparer), "Nodes not added correctly!"); docHelper.Verify(XObjectChange.Add, toAdd); } undo.Undo(); Assert.True(XNode.DeepEquals(xDoc, xDocOriginal), "Undo did not work!"); } }