public void Import_ExportedLevel_SameLevel() { // Create simple levelstring. string levelString = "width=10\r\nheight=10\r\n"; levelString += "start=0,1\r\nfinish=0,2\r\n"; levelString += "1,2=tile\r\n4,4=ghost\r\n"; // Import from levelstring to ILevel object. ILevelImporter importer = new LevelImporter(new StringReader(levelString)); ILevel level = importer.ImportLevel(); // Export from imported ILevel to string. StringWriter writer = new StringWriter(); ILevelExporter exporter = new LevelExporter(writer); exporter.ExportLevel(level); // Levelstrings should be exactly the same. Assert.AreEqual(levelString, writer.LevelString); }
/// <summary> /// Shows a filedialog to load a level. /// Will show an error message if the file is not a valid level file. /// </summary> private void LoadLevelDialog() { FileDialog dialog = new OpenFileDialog(); dialog.Filter = "Level files (*.level)|*.level"; if (dialog.ShowDialog() == DialogResult.OK) { ILevelImporter levelImporter = new LevelImporter(dialog.FileName); try { levelPanel.Level = levelImporter.ImportLevel(); } catch (ArgumentException ex) { MessageBox.Show(ex.Message, "Cannot load level", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }