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 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 async Task UninstallsRevisionCorrectly() { var configFile = new ConfigFile(Dir); var fs = new MockFileSystem(); var revisionManager = new RevisionManager(configFile, fs); Util.CreateSFMDirectory(fs); var revision = Util.CreateFakeTempRevision(fs); await revisionManager.InstallRevision(revision, "C:\\tmp", null); Assert.IsTrue(revisionManager.VerifyInstalled(revision, null)); await revisionManager.UninstallRevision(revision.ID, null); Assert.IsFalse(revisionManager.VerifyInstalled(revision, null)); foreach (var file in revision.Files) { Assert.IsFalse(fs.FileExists(file.Path)); } }
public async Task InstallsRevisionCorrectly() { var configFile = new ConfigFile(Dir); var fs = new MockFileSystem(); var revisionManager = new RevisionManager(configFile, fs); Util.CreateSFMDirectory(fs); var revision = Util.CreateFakeTempRevision(fs); await revisionManager.InstallRevision(revision, "C:\\tmp", null); Assert.IsTrue(revisionManager.VerifyInstalled(revision, null)); }
public async Task <List <int> > Execute() { var failedIDs = new List <int>(); foreach (var id in _ids) { var progress = new Progress <int>(i => SetProgress(id, i)); var valid = false; LogInstallation("Verifying revision " + id + "\n"); await Task.Factory.StartNew(() => { valid = _revisionManager.VerifyInstalled(id, progress); }); if (!valid) { failedIDs.Add(id); } } if (failedIDs.Count > 0) { LogInstallation("Some revisions failed to validate:\n"); foreach (var failedId in failedIDs) { LogInstallation(" " + failedId + "\n"); } } else { LogInstallation("Ok!\n"); } Progress = _uninstallProgress.Count * 100; return(failedIDs); }