Exemplo n.º 1
0
        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));
            }
        }
Exemplo n.º 3
0
        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));
            }
        }
Exemplo n.º 4
0
        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));
        }
Exemplo n.º 5
0
        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);
        }