public void AddVertexCommandTest() { Shapes.Models.UndoRedoManager manager = new Shapes.Models.UndoRedoManager(); Shapes.Models.Canvas testCanvas = new Shapes.Models.Canvas(); Shapes.Models.Vertex first = new Shapes.Models.Vertex(); Shapes.Models.Vertex second = new Shapes.Models.Vertex(); Assert.AreEqual(0, testCanvas.Count); Shapes.Commands.Vertex.AddVertex testCommand = new Shapes.Commands.Vertex.AddVertex(testCanvas, first, manager); manager.Execute(testCommand); Assert.AreEqual(1, testCanvas.Count); manager.Undo(); Assert.AreEqual(0, testCanvas.Count); manager.Redo(); Assert.AreEqual(1, testCanvas.Count); manager.Execute( new Shapes.Commands.Vertex.AddVertex(testCanvas, second, manager)); Assert.AreEqual(2, testCanvas.Count); manager.Undo(); manager.Undo(); Assert.AreEqual(0, testCanvas.Count); manager.Redo(); Assert.AreEqual(1, testCanvas.Count); Configuration.UndoAll(manager); }
public void RemoveVertexCommandTest() { Shapes.Models.UndoRedoManager manager = new Shapes.Models.UndoRedoManager(); Shapes.Models.Canvas canvas = new Shapes.Models.Canvas(); Shapes.Models.Vertex first = new Shapes.Models.Vertex { Location = new System.Windows.Point(1, 2) }; Assert.AreEqual(0, canvas.Count); Assert.IsFalse(canvas.Contains(first)); canvas.Add(first); Assert.AreEqual(1, canvas.Count); Assert.IsTrue(canvas.Contains(first)); Shapes.Commands.Vertex.RemoveVertex removeVertexCommand = new Shapes.Commands.Vertex.RemoveVertex(canvas, first); manager.Execute(removeVertexCommand); Assert.AreEqual(0, canvas.Count); Assert.IsFalse(canvas.Contains(first)); manager.Undo(); Assert.AreEqual(1, canvas.Count); Assert.IsTrue(canvas.Contains(first)); manager.Redo(); Assert.AreEqual(0, canvas.Count); Assert.IsFalse(canvas.Contains(first)); }
// METHODS /// <summary> /// Loads information from xml file. /// </summary> /// <param name="item">Object to loading.</param> /// <param name="fileName">The name of file.</param> public void Load(ref Shapes.Models.Canvas item, string fileName) { item.Clear(); System.Xml.Serialization.XmlSerializer xmlFormat = new System.Xml.Serialization.XmlSerializer(typeof(Shapes.Models.Canvas), new System.Type[] { typeof(Shapes.Models.ShapeBase), typeof(Shapes.Models.Vertex), typeof(Shapes.Models.Pentagon) }); using (System.IO.FileStream fStream = new System.IO.FileStream(fileName, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.None)) { item = (Shapes.Models.Canvas)xmlFormat.Deserialize(fStream); } }
/// <summary> /// Saves information to xml file. /// </summary> /// <param name="item">Object to saving.</param> /// <param name="fileName">The name of file.</param> /// <exception cref="System.ArgumentNullException"> /// Thrown when canvas is null. /// </exception> public void Save(Shapes.Models.Canvas item, string fileName) { if (item != null) { System.Xml.Serialization.XmlSerializer xmlFormat = new System.Xml.Serialization.XmlSerializer(typeof(Shapes.Models.Canvas), new System.Type[] { typeof(Shapes.Models.ShapeBase), typeof(Shapes.Models.Vertex), typeof(Shapes.Models.Pentagon) }); using (System.IO.FileStream fStream = new System.IO.FileStream(fileName, System.IO.FileMode.Create, System.IO.FileAccess.Write, System.IO.FileShare.None)) { xmlFormat.Serialize(fStream, item); } } else { throw new System.ArgumentNullException("Canvas is null."); } }