public void TestReplaceRollback() { string testdata = Guid.NewGuid().ToString(); using (TempFile replace = new TempFile()) using (ReplaceFile temp = new ReplaceFile(replace.TempPath)) { temp.WriteAllText(testdata); Assert.IsTrue(temp.Exists); temp.Rollback(); Assert.IsFalse(temp.Exists); } }
public void TestReplaceFiles() { string testdata = Guid.NewGuid().ToString(); string tmpPath; TempFile replace = new TempFile(); using (ReplaceFile temp = new ReplaceFile(replace.TempPath)) { Assert.AreEqual(temp.TargetFile, replace.TempPath); tmpPath = temp.TempPath; Assert.IsTrue(temp.Exists); temp.WriteAllText(testdata); //missing commit: //temp.Commit(); } Assert.AreEqual(0, replace.Length); Assert.IsFalse(File.Exists(tmpPath)); string backupfile = Path.ChangeExtension(replace.TempPath, ".bak"); File.Delete(Path.ChangeExtension(replace.TempPath, ".bak")); Assert.IsFalse(File.Exists(backupfile)); replace.WriteAllText("backup"); //now for real using (ReplaceFile temp = new ReplaceFile(replace.TempPath, ".bak")) { tmpPath = temp.TempPath; Assert.IsTrue(temp.Exists); temp.WriteAllText(testdata); temp.Commit(); } Assert.IsFalse(File.Exists(tmpPath)); Assert.AreEqual(testdata, replace.ReadAllText()); Assert.IsTrue(File.Exists(backupfile)); using (TempFile fbackup = TempFile.Attach(backupfile)) Assert.AreEqual("backup", fbackup.ReadAllText()); }