using System; using System.Collections.Generic; using System.Text; using NUnit.Framework; using TaskExplorer.Data; using System.Xml; namespace TaskExplorer.Tests { [TestFixture] public class TestSaveLoad { [Test] public void Test1() { Store store = new Store(); Task task1 = store.CreateTask("Move the boxes"); Task task2 = store.CreateTask("Hoover"); task2.AddPreRequisite(task1); Goal goal = store.CreateGoal("Complete something"); goal.RequireTask(task2); task1.IsComplete = true; string savedFile; { StringBuilder stringOut = new StringBuilder(); XmlWriterSettings setts = new XmlWriterSettings(); setts.Indent = true; using (XmlWriter writer = XmlWriter.Create(stringOut, setts)) { store.SaveTo(writer); } savedFile = stringOut.ToString(); } Console.WriteLine("{0}", savedFile); StringAssert.Contains(task1.Name, savedFile); StringAssert.Contains(task2.Name, savedFile); StringAssert.Contains(goal.Name, savedFile); Store loaded = new Store(); { XmlDocument doc = new XmlDocument(); doc.LoadXml(savedFile); loaded.LoadFrom(doc); } List tasks = new List(loaded.Tasks); Assert.AreEqual(2, tasks.Count); Assert.AreEqual(task1.Name, tasks[0].Name); Assert.AreEqual(task2.Name, tasks[1].Name); Assert.IsTrue(tasks[0].IsComplete); Assert.IsFalse(tasks[1].IsComplete); List task1prereq = new List(tasks[0].PreRequisites); Assert.AreEqual(0, task1prereq.Count); List task2prereq = new List(tasks[1].PreRequisites); Assert.AreEqual(1, task2prereq.Count); Assert.AreEqual(task1.Name, task2prereq[0].Name); List goals = new List(loaded.Goals); Assert.AreEqual(1, goals.Count); Assert.AreEqual(goal.Name, goals[0].Name); List goalreqs = new List(goals[0].RequiredTasks); Assert.AreEqual(1, goalreqs.Count); Assert.AreEqual(task2.Name, goalreqs[0].Name); } } }