private void BtnNext_Click(object sender, RoutedEventArgs e) { var dir = DirectoryPathBox.Text; var parser = new SFMDirectoryParser(dir, WindowsFileSystem.Instance); var error = parser.Validate(); if (error == SFMDirectoryParserError.NotExists) { MessageBox.Show("The path chosen is not a valid directory.", "Error", MessageBoxButton.OK, MessageBoxImage.Error); return; } if (error == SFMDirectoryParserError.NotLikely) { if (MessageBox.Show("The directory does not seem like the typical SFM installation. Continue?", "Warning", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.No) { return; } } _config.Write(new ConfigFile(parser.Path)); var gameinfoHandler = new GameinfoHandler(parser.GameinfoPath, WindowsFileSystem.Instance); var ret = gameinfoHandler.Execute(); /* TODO: maybe display a bit more useful error message including troubleshooting issues */ if (ret == GameinfoHandlerError.FileInvalid) { MessageBox.Show("Failed to add entry to gameinfo.txt", "Error", MessageBoxButton.OK, MessageBoxImage.Error); } SetupWindow.Instance.GoToMainWindow(); }
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 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 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")); }