public void TestSaveAndLoadAndDelete() { string dir = Path.Combine(Path.GetTempPath(), "enumfile-test"); var dirInfo = new DirectoryInfo(dir); if (dirInfo.Exists) { dirInfo.Delete(true); } var of = new OutputFormat(); of.Name = "of1"; of.Header = "header1"; of.Footer = "footer1"; of.EachItem = "eachItem1"; of.EachItemAlternate = "eachItemAlt1"; OutputFormatPersistent.Save(of, dirInfo); var of2 = of.duplicate(); of2.Name = "of?2"; OutputFormatPersistent.Save(of2, dirInfo); var results = OutputFormatPersistent.Load(dir).ToArray(); foreach (OutputFormat iof in results) { Console.WriteLine(iof); } Assert.AreEqual(results.Length, 2); OutputFormatPersistent.Delete(of, dirInfo); OutputFormatPersistent.Delete(of2, dirInfo); dirInfo.Delete(); }
public void TestCascade() { string progDir = Path.Combine(this.dirName, "prog"); string allDir = Path.Combine(this.dirName, "all"); string justDir = Path.Combine(this.dirName, "just"); { Directory.CreateDirectory(progDir); Directory.CreateDirectory(allDir); Directory.CreateDirectory(justDir); var progDirInfo = new DirectoryInfo(progDir); var allDirInfo = new DirectoryInfo(allDir); var justDirInfo = new DirectoryInfo(justDir); Assert.AreEqual(progDirInfo.GetFiles().Count(), 0); Assert.AreEqual(allDirInfo.GetFiles().Count(), 0); Assert.AreEqual(justDirInfo.GetFiles().Count(), 0); var of1 = new OutputFormat() { Name = "name1" }; of1.Header = "a"; var of2 = of1.duplicate(); of2.Header = "b"; var of3 = of1.duplicate(); of3.Header = "c"; var of4 = of1.duplicate(); of4.Name = "name2"; of4.Header = "d"; var of5 = of1.duplicate(); of5.Name = "name2"; of5.Header = "e"; OutputFormatPersistent.Save(of1, progDirInfo); OutputFormatPersistent.Save(of2, allDirInfo); OutputFormatPersistent.Save(of3, justDirInfo); OutputFormatPersistent.Save(of4, progDirInfo); OutputFormatPersistent.Save(of5, allDirInfo); } { var mgr = new OutputFormatManager(); mgr.AddDirectory(new PersistentDirectoryInfo(progDir, false)); mgr.AddDirectory(new PersistentDirectoryInfo(allDir, true)); mgr.AddDirectory(new PersistentDirectoryInfo(justDir, true)); mgr.Load(); Assert.AreEqual(mgr.AllItems.Count(), 2); Assert.AreEqual(mgr["name1"].Header, "c"); Assert.AreEqual(mgr["name2"].Header, "e"); OutputFormat x; bool ret; ret = mgr.TryGetValue("name1", out x); Assert.IsTrue(ret); x.Footer = "x"; mgr.Update(x); Assert.AreEqual(mgr["name1"].Footer, "x"); ret = mgr.TryGetValue("name2", out x); Assert.IsTrue(ret); x.Footer = "y"; mgr.Update(x); Assert.AreEqual(mgr["name2"].Footer, "y"); mgr.Save(); } { var mgr = new OutputFormatManager(); mgr.AddDirectory(new PersistentDirectoryInfo(progDir, false)); mgr.AddDirectory(new PersistentDirectoryInfo(allDir, true)); mgr.AddDirectory(new PersistentDirectoryInfo(justDir, true)); mgr.Load(); Assert.AreEqual(mgr.AllItems.Count(), 2); Assert.AreEqual(mgr["name1"].Header, "c"); Assert.AreEqual(mgr["name2"].Header, "e"); Assert.AreEqual(mgr["name1"].Footer, "x"); Assert.AreEqual(mgr["name2"].Footer, "y"); mgr["name1"] = null; mgr.Remove(mgr["name2"]); Assert.AreEqual(mgr["name1"].Header, "b"); Assert.AreEqual(mgr["name2"].Header, "d"); mgr.Save(); } { var mgr = new OutputFormatManager(); mgr.AddDirectory(new PersistentDirectoryInfo(progDir, false)); mgr.AddDirectory(new PersistentDirectoryInfo(allDir, true)); mgr.AddDirectory(new PersistentDirectoryInfo(justDir, true)); mgr.Load(); Assert.AreEqual(mgr.AllItems.Count(), 2); Assert.AreEqual(mgr["name1"].Header, "b"); Assert.AreEqual(mgr["name2"].Header, "d"); } }
public void TestSimpleLoadAndSave() { string progDir = Path.Combine(this.dirName, "prog"); string allDir = Path.Combine(this.dirName, "all"); string justDir = Path.Combine(this.dirName, "just"); Directory.CreateDirectory(progDir); Directory.CreateDirectory(allDir); Directory.CreateDirectory(justDir); var mgr = new OutputFormatManager(); mgr.AddDirectory(new PersistentDirectoryInfo(progDir, false)); mgr.AddDirectory(new PersistentDirectoryInfo(allDir, true)); mgr.AddDirectory(new PersistentDirectoryInfo(justDir, true)); var of1 = new OutputFormat() { Name = "name1", Header = "header1", EachItem = "eachItem1", EachItemAlternate = "eachItem1Alt", Footer = "footer1" }; Assert.AreEqual(mgr.AllItems.Count(), 0); Assert.IsNull(mgr["name1"]); Assert.IsNull(mgr["name2"]); mgr.Update(of1); Assert.AreEqual(mgr.AllItems.Count(), 1); Assert.IsNotNull(mgr["name1"]); Assert.IsNull(mgr["name2"]); var of2 = of1.duplicate(); of2.Name = "name2"; mgr.Update(of2); Assert.AreEqual(mgr.AllItems.Count(), 2); Assert.IsNotNull(mgr["name1"]); Assert.IsNotNull(mgr["name2"]); Assert.AreEqual(new DirectoryInfo(justDir).GetFiles().Count(), 0); mgr.Save(); Assert.AreEqual(new DirectoryInfo(justDir).GetFiles().Count(), 2); mgr.Clear(); Assert.AreEqual(mgr.AllItems.Count(), 0); mgr.Load(); Assert.AreEqual(mgr.AllItems.Count(), 2); Assert.IsNotNull(mgr["name1"]); Assert.IsNotNull(mgr["name2"]); var of_o1 = mgr["name1"]; Assert.AreEqual(of1, of_o1); var of_o2 = mgr["name2"]; Assert.AreEqual(of2, of_o2); }
/// <summary> /// 既定の出力フォーマット(固定)を生成する. /// </summary> /// <returns></returns> protected virtual OutputFormatHolder CreateDefaultFormat(string typ) { OutputFormat of; switch (typ) { case "xml": of = new OutputFormat() { Name = "Simple XML", Header = "<files>", EachItem = "<file sha1=\"%SHA1:XML%\">%PATH:XML%</file>", Footer = "</files>" }; break; case "text": default: of = new OutputFormat() { Name = "Plain Text", EachItem = "%PATH%\t%SHA1%" }; break; } return new OutputFormatHolder() { directoryInfo = new PersistentDirectoryInfo(".", false), original = of, current = of.duplicate() }; }