public CloneFakeGameDialog(GameInstanceManager manager, IUser user) : base() { this.manager = manager; this.user = user; InitializeComponent(); // Populate the version combobox for fake instance. List <GameVersion> knownVersions = new KerbalSpaceProgram().KnownVersions; knownVersions.Reverse(); comboBoxGameVersion.DataSource = knownVersions; // Populate the instances combobox with names of known instances comboBoxKnownInstance.DataSource = new string[] { "" } .Concat(manager.Instances.Values .Where(i => i.Valid) .OrderBy(i => i.Version()) .Reverse() .Select(i => i.Name)) .ToList(); comboBoxKnownInstance.Text = manager.CurrentInstance?.Name ?? manager.AutoStartInstance ?? ""; this.radioButtonClone.Checked = true; }
public void VersionSpan_MaxOnly_CorrectString() { // Arrange IGame game = new KerbalSpaceProgram(); GameVersion min = GameVersion.Any; GameVersion max = new GameVersion(1, 0, 0); // Act string s = GameVersionRange.VersionSpan(game, min, max); // Assert Assert.AreEqual("KSP 1.0.0 and earlier", s); }
public void VersionSpan_FiniteRange_CorrectString() { // Arrange IGame game = new KerbalSpaceProgram(); GameVersion min = new GameVersion(1, 0, 0); GameVersion max = new GameVersion(1, 1, 1); // Act string s = GameVersionRange.VersionSpan(game, min, max); // Assert Assert.AreEqual("KSP 1.0.0–1.1.1", s); }
public void VersionSpan_AllVersions_CorrectString() { // Arrange IGame game = new KerbalSpaceProgram(); GameVersion min = GameVersion.Any; GameVersion max = GameVersion.Any; // Act string s = GameVersionRange.VersionSpan(game, min, max); // Assert Assert.AreEqual("KSP all versions", s); }
public void Tutorial() { //Use Uri to avoid issues with windows vs linux line separators. var canonicalPath = new Uri(Path.Combine(ksp_dir, "saves", "training")).LocalPath; var game = new KerbalSpaceProgram(); string dest; Assert.IsTrue(game.AllowInstallationIn("Tutorial", out dest)); Assert.AreEqual( new DirectoryInfo(ksp.ToAbsoluteGameDir(dest)), new DirectoryInfo(canonicalPath) ); }
public void Validate(Metadata metadata) { var mod = CkanModule.FromJson(metadata.Json().ToString()); if (!mod.IsCompatibleKSP(new GameVersionCriteria(null, knownVersions))) { GameVersion minKsp = null, maxKsp = null; Registry.GetMinMaxVersions(new List <CkanModule>() { mod }, out _, out _, out minKsp, out maxKsp); var game = new KerbalSpaceProgram(); throw new Kraken($"{metadata.Identifier} doesn't match any valid game version: {GameVersionRange.VersionSpan(game, minKsp, maxKsp)}"); } }
public void IsGameDir() { var game = new KerbalSpaceProgram(); // Our test data directory should be good. Assert.IsTrue(game.GameInFolder(new DirectoryInfo(TestData.good_ksp_dir()))); // As should our copied folder. Assert.IsTrue(game.GameInFolder(new DirectoryInfo(ksp_dir))); // And the one from our KSP instance. Assert.IsTrue(game.GameInFolder(new DirectoryInfo(ksp.GameDir()))); // All these ones should be bad. foreach (string dir in TestData.bad_ksp_dirs()) { Assert.IsFalse(game.GameInFolder(new DirectoryInfo(dir))); } }
private bool VersionsNeedManualReview(Metadata metadata, out string reason) { JObject json = metadata.Json(); var minStr = json["ksp_version_min"] ?? json["ksp_version"]; var maxStr = json["ksp_version_max"] ?? json["ksp_version"]; var minVer = minStr == null ? GameVersion.Any : GameVersion.Parse((string)minStr); var maxVer = maxStr == null ? GameVersion.Any : GameVersion.Parse((string)maxStr); if (currentRelease.IntersectWith(new GameVersionRange(minVer, maxVer)) == null) { var game = new KerbalSpaceProgram(); reason = $"Hard-coded game versions not compatible with current release: {GameVersionRange.VersionSpan(game, minVer, maxVer)}\r\nPlease check that they match the forum thread."; return(true); } else { // Compatible with latest release, no manual review needed reason = ""; return(false); } }
public StagingTransformer() { currentRelease = new KerbalSpaceProgram().KnownVersions.Max().ToVersionRange(); }
public MatchesKnownGameVersionsValidator() { knownVersions = new KerbalSpaceProgram().KnownVersions; }