public async Task FiresEventCorrectlyWithOverwrite() { var fs = new MockFileSystem(); var directoryCopier = new DirectoryCopier(fs, "C:\\fakeDir", "C:\\SFM", true); var d1 = Encoding.UTF8.GetBytes("Hello"); var d2 = Encoding.UTF8.GetBytes("Konnichiwa"); fs.CreateFile("C:\\fakeDir\\file1.txt", d1); fs.CreateFile("C:\\SFM\\file1.txt", d2); DirectoryCopierFileExistsEventArgs eventArgs = null; directoryCopier.OnFileExists += delegate(object sender, DirectoryCopierFileExistsEventArgs e) { eventArgs = e; e.FileCopyMode = DirectoryCopierFileCopyMode.Copy; }; await directoryCopier.Execute(); Assert.AreNotEqual(null, eventArgs); Assert.AreEqual(eventArgs.File1, "C:\\fakeDir\\file1.txt"); Assert.AreEqual(fs.ReadFile("C:\\fakeDir\\file1.txt"), d1); Assert.AreEqual(eventArgs.File2, "C:\\SFM\\file1.txt"); Assert.AreEqual(fs.ReadFile("C:\\SFM\\file1.txt"), d1); }
public async Task CopyAllShouldSkipEvents() { var fs = new MockFileSystem(); var directoryCopier = new DirectoryCopier(fs, "C:\\fakeDir", "C:\\SFM", true); var d1 = Encoding.UTF8.GetBytes("Hello"); var d2 = Encoding.UTF8.GetBytes("Konnichiwa"); fs.CreateFile("C:\\fakeDir\\file1.txt", d1); fs.CreateFile("C:\\fakeDir\\file2.txt", d2); fs.CreateFile("C:\\SFM\\file1.txt"); fs.CreateFile("C:\\SFM\\file2.txt"); var timesEventCalled = 0; directoryCopier.OnFileExists += delegate(object sender, DirectoryCopierFileExistsEventArgs e) { e.FileCopyMode = DirectoryCopierFileCopyMode.CopyAll; timesEventCalled++; }; await directoryCopier.Execute(); /* Setting FileCopyMode to CopyAll should disable the event */ Assert.AreEqual(1, timesEventCalled); Assert.AreEqual(fs.ReadFile("C:\\SFM\\file1.txt"), d1); Assert.AreEqual(fs.ReadFile("C:\\SFM\\file2.txt"), d2); }
public async Task ExecutesCorrectly() { var fs = new MockFileSystem(); var api = new MockAPIConnector(fs); var revisionMgr = new RevisionManager(new ConfigFile("C:\\SFM"), fs); var ids = new List <int>() { 1337 }; var installationPresenter = new InstallationPresenter(api, fs, revisionMgr, ids); /* Create fake revision to download */ fs.CreateDirectory("C:\\tmp"); fs.CreateDirectory("C:\\tmp\\models"); fs.CreateFile("C:\\tmp\\models\\model.ext"); fs.CreateDirectory("C:\\tmp\\materials"); fs.CreateFile("C:\\tmp\\materials\\material.ext"); var revision = Revision.CreateTemporaryRevisionFromFolder(1337, "C:\\tmp", fs); api.AddRevision("C:\\tmp", revision); await installationPresenter.Execute(); Assert.IsTrue(revisionMgr.VerifyInstalled(revision, null)); }
public static void CreateFakeTempRevisionStructure(MockFileSystem fs) { fs.CreateDirectory("C:\\tmp"); fs.CreateDirectory("C:\\tmp\\models"); fs.CreateFile("C:\\tmp\\models\\pony.vtf"); fs.CreateDirectory("C:\\tmp\\materials"); fs.CreateFile("C:\\tmp\\materials\\pony.vmt"); }
public void GetFilesReturnsCorrectFiles() { var fs = new MockFileSystem(); fs.CreateFile("C:\\someFolder\\myFile.txt"); fs.CreateFile("C:\\someFolder\\gaben.txt"); var files = fs.GetFiles("C:\\someFolder"); Assert.AreEqual(files.Count, 2); }
public async Task CopiesDirectoryCorrectlyOnlyFiles() { var fs = new MockFileSystem(); var directoryCopier = new DirectoryCopier(fs, "C:\\fakeDir", "C:\\SFM", false); fs.CreateDirectory("C:\\fakeDir"); fs.CreateFile("C:\\fakeDir\\file1.txt"); fs.CreateFile("C:\\fakeDir\\file2.txt"); await directoryCopier.Execute(); Assert.IsTrue(fs.FileExists("C:\\SFM\\file1.txt")); Assert.IsTrue(fs.FileExists("C:\\SFM\\file2.txt")); }
public async Task ExecutesCorrectly() { var configFile = new ConfigFile("C:\\SFM"); var fs = new MockFileSystem(); var revisionManager = new RevisionManager(configFile, fs); fs.CreateDirectory("C:\\SFM"); fs.CreateDirectory("C:\\SFM\\ponysfm"); fs.CreateDirectory("C:\\tmp"); fs.CreateDirectory("C:\\tmp\\models"); fs.CreateFile("C:\\tmp\\models\\pony.vtf"); fs.CreateDirectory("C:\\tmp\\materials"); fs.CreateFile("C:\\tmp\\materials\\pony.vmt"); var files = new List <RevisionFileEntry> { RevisionFileEntry.FromFile("C:\\tmp\\models\\pony.vtf", fs), RevisionFileEntry.FromFile("C:\\tmp\\materials\\pony.vmt", fs) }; var revision = new Revision(1, files); await revisionManager.InstallRevision(revision, "C:\\tmp", null); Assert.IsTrue(revisionManager.VerifyInstalled(revision, null)); var list = new List <int> { 1 }; var deinstallationPresenter = new DeinstallationPresenter(revisionManager, list); await deinstallationPresenter.Execute(); Assert.IsFalse(revisionManager.VerifyInstalled(revision, null)); foreach (var file in revision.Files) { Assert.IsFalse(fs.FileExists(file.Path)); } }
public void CopyFile() { var fs = new MockFileSystem(); fs.CreateFile("C:\\someFolder\\myFile.txt"); /* TODO: set data */ fs.CopyFile("C:\\someFolder\\myFile.txt", "C:\\someFolder\\copy.txt"); Assert.IsTrue(fs.FileExists("C:\\someFolder\\myFile.txt")); Assert.IsTrue(fs.FileExists("C:\\someFolder\\copy.txt")); }
public void TestNopExecution() { var fs = new MockFileSystem(); fs.CreateFile("C:\\gameinfo.txt", Encoding.UTF8.GetBytes(_gameinfoDataComplete)); var handler = new GameinfoHandler("C:\\gameinfo.txt", fs); var error = handler.Execute(); Assert.AreEqual(GameinfoHandlerError.AlreadyAdded, error); }
public void TestFaultyExecution() { var fs = new MockFileSystem(); fs.CreateFile("C:\\gameinfo.txt", Encoding.UTF8.GetBytes(GameinfoDataInvalid)); var handler = new GameinfoHandler("C:\\gameinfo.txt", fs); var error = handler.Execute(); Assert.AreEqual(GameinfoHandlerError.FileInvalid, error); }
public async Task FiresEventCorrectly() { var fs = new MockFileSystem(); var directoryCopier = new DirectoryCopier(fs, "C:\\fakeDir", "C:\\SFM", true); var copiedFiles = new List <Tuple <string, string> >(); var progressHistory = new List <int>(); fs.CreateFile("C:\\fakeDir\\file1.txt"); fs.CreateFile("C:\\SFM\\file1.txt"); DirectoryCopierFileExistsEventArgs eventArgs = null; directoryCopier.OnFileExists += delegate(object sender, DirectoryCopierFileExistsEventArgs e) { eventArgs = e; }; directoryCopier.OnFileCopy += delegate(object sender, DirectoryCopierCopyEventArgs e) { copiedFiles.Add(new Tuple <string, string>(e.File1, e.File2)); }; directoryCopier.OnProgress += delegate(object sender, DirectoryProgressEventArgs e) { progressHistory.Add(e.Progress); }; await directoryCopier.Execute(); Assert.AreNotEqual(null, eventArgs); Assert.AreEqual(eventArgs.File1, "C:\\fakeDir\\file1.txt"); Assert.AreEqual(eventArgs.File2, "C:\\SFM\\file1.txt"); Assert.IsTrue(copiedFiles.Contains(new Tuple <string, string>("C:\\fakeDir\\file1.txt", "C:\\SFM\\file1.txt"))); Assert.IsTrue(progressHistory.Contains(100)); }
public async Task CopiesDirectoryCorrectlyWithSubDirs() { var fs = new MockFileSystem(); var directoryCopier = new DirectoryCopier(fs, "C:\\fakeDir", "C:\\SFM", true); fs.CreateDirectory("C:\\fakeDir"); fs.CreateFile("C:\\fakeDir\\file1.txt"); fs.CreateFile("C:\\fakeDir\\file2.txt"); fs.CreateDirectory("C:\\fakeDir\\folder"); fs.CreateFile("C:\\fakeDir\\folder\\file3.txt"); fs.CreateDirectory("C:\\fakeDir\\folder\\folder2"); fs.CreateFile("C:\\fakeDir\\folder\\folder2\\file4.txt"); await directoryCopier.Execute(); Assert.IsTrue(fs.FileExists("C:\\SFM\\file1.txt")); Assert.IsTrue(fs.FileExists("C:\\SFM\\file2.txt")); Assert.IsTrue(fs.DirectoryExists("C:\\SFM\\folder")); Assert.IsTrue(fs.FileExists("C:\\SFM\\folder\\file3.txt")); Assert.IsTrue(fs.DirectoryExists("C:\\SFM\\folder\\folder2")); Assert.IsTrue(fs.FileExists("C:\\SFM\\folder\\folder2\\file4.txt")); }
public void TestCorrectExecution() { var fs = new MockFileSystem(); fs.CreateFile("C:\\gameinfo.txt", Encoding.UTF8.GetBytes(GameinfoData)); var handler = new GameinfoHandler("C:\\gameinfo.txt", fs); var error = handler.Execute(); Assert.AreEqual(GameinfoHandlerError.Success, error); var newdata = Encoding.UTF8.GetString(fs.ReadFile("C:\\gameinfo.txt")).Replace("\r", ""); Assert.IsTrue(newdata.IndexOf(GameinfoHandler.GameinfoLine, StringComparison.Ordinal) != -1); Assert.AreEqual(_gameinfoDataComplete, newdata); }
public void TestBackup() { var fs = new MockFileSystem(); fs.CreateFile("C:\\gameinfo.txt", Encoding.UTF8.GetBytes(GameinfoData)); var handler = new GameinfoHandler("C:\\gameinfo.txt", fs); handler.CreateBackup(); Assert.IsTrue(fs.FileExists("C:\\gameinfo.txt.bak")); var backupdata = fs.ReadFile("C:\\gameinfo.txt.bak"); Assert.AreEqual(GameinfoData, Encoding.UTF8.GetString(backupdata)); /* Now test RestoreBackup */ fs.DeleteFile("C:\\gameinfo.txt"); handler.RestoreBackup(); Assert.IsTrue(fs.FileExists("C:\\gameinfo.txt")); }
public void PopulateData() { var fs = new MockFileSystem(); fs.CreateFile(_stubfile); var db = new RevisionDatabase(_filepath, fs); Assert.IsTrue(fs.FileExists(_filepath)); for (var i = 0; i < 5; i++) { db.Revisions.Add(CreateStubRevision(fs)); } db.WriteDbDisk(); var doc = fs.OpenXml(_filepath); Assert.IsTrue(doc.HasChildNodes); Assert.IsTrue(doc.FirstChild.Name == "PonySFM"); Assert.IsTrue(doc.FirstChild.HasChildNodes); Assert.IsTrue(doc.FirstChild.ChildNodes.Count == 5); foreach (XmlElement elem in doc.FirstChild.ChildNodes) { Assert.IsTrue(elem.HasAttribute("ID")); Assert.IsTrue(elem.HasAttribute("Test")); Assert.AreEqual("Cake", elem.GetAttribute("Test")); Assert.IsTrue(elem.HasChildNodes); foreach (XmlElement fileElem in elem.ChildNodes) { Assert.IsTrue(fileElem.GetAttribute("Location") == _stubfile); } } }