public void Setup() { registry = CKAN.Registry.Empty(); options = RelationshipResolver.DefaultOpts(); generator = new RandomModuleGenerator(new Random(0451)); //Sanity checker means even incorrect RelationshipResolver logic was passing options.without_enforce_consistency = true; }
public void HasUpdateReturnsTrueWhenUpdateAvailible() { using (var tidy = new DisposableKSP()) { var generatror = new RandomModuleGenerator(new Random(0451)); var old_version = generatror.GeneratorRandomModule(version: new ModuleVersion("0.24"), ksp_version: tidy.KSP.Version()); var new_version = generatror.GeneratorRandomModule(version: new ModuleVersion("0.25"), ksp_version: tidy.KSP.Version(), identifier: old_version.identifier); var registry = Registry.Empty(); registry.RegisterModule(old_version, Enumerable.Empty <string>(), null); registry.AddAvailable(new_version); var mod = new GUIMod(old_version, registry, tidy.KSP.VersionCriteria()); Assert.True(mod.HasUpdate); } }
public async Task TooManyProvidesCallsHandlers() { using (var tidy = new DisposableKSP()) { var manager = new KSPManager(new NullUser()); var registry = Registry.Empty(); var generator = new RandomModuleGenerator(new Random(0451)); var provide_ident = "provide"; var ksp_version = tidy.KSP.Version(); var mod = generator.GeneratorRandomModule(depends: new List <RelationshipDescriptor> { new ModuleRelationshipDescriptor { name = provide_ident } }, ksp_version: ksp_version); var moda = generator.GeneratorRandomModule(provides: new List <string> { provide_ident } , ksp_version: ksp_version); var modb = generator.GeneratorRandomModule(provides: new List <string> { provide_ident } , ksp_version: ksp_version); var choice_of_provide = modb; registry.AddAvailable(mod); registry.AddAvailable(moda); registry.AddAvailable(modb); var installer = ModuleInstaller.GetInstance(tidy.KSP, manager.Cache, null); var main_mod_list = new MainModList(null, async kraken => await Task.FromResult(choice_of_provide)); var a = new HashSet <ModChange> { new ModChange(new GUIMod(mod, registry, new KspVersionCriteria(ksp_version)), GUIModChangeType.Install, null) }; var mod_list = await main_mod_list.ComputeChangeSetFromModList(registry, a, installer, new KspVersionCriteria (ksp_version)); CollectionAssert.AreEquivalent( new[] { new ModChange(new GUIMod(mod, registry, new KspVersionCriteria(ksp_version)), GUIModChangeType.Install, null), new ModChange(new GUIMod(modb, registry, new KspVersionCriteria(ksp_version)), GUIModChangeType.Install, null) }, mod_list); manager.Dispose(); } }
public void HasUpdateReturnsTrueWhenUpdateAvailible() { using (var tidy = new DisposableKSP()) { CKAN.KSPManager manager = new CKAN.KSPManager(new NullUser()) { _CurrentInstance = tidy.KSP }; var generatror = new RandomModuleGenerator(new Random(0451)); var oldVersion = generatror.GeneratorRandomModule(version: new CKAN.Version("0.24"), kspVersion: tidy.KSP.Version()); var newVersion = generatror.GeneratorRandomModule(version: new CKAN.Version("0.25"), kspVersion: tidy.KSP.Version(), identifier: oldVersion.identifier); var registry = CKAN.Registry.Empty(); registry.RegisterModule(oldVersion, Enumerable.Empty <string>(), null); registry.AddAvailable(newVersion); var mod = new GUIMod(oldVersion, registry, tidy.KSP.Version()); Assert.True(mod.HasUpdate); } }
public void LatestAvailable() { var module = new RandomModuleGenerator(new Random()).GeneratorRandomModule(depends: new List <ModDependency>() { new ModDependency($"base=={v0_24_2}") }); registry.AddAvailable(module); // Make sure it's there for 0.24.2 Assert.AreEqual(module.ToString(), registry.LatestAvailable(module.identifier, v0_24_2).ToString()); // But not for 0.25.0 Assert.IsNull(registry.LatestAvailable(module.identifier, v0_25_0)); // And that we fail if we ask for something we don't know. Assert.Throws <ModuleNotFoundKraken>(delegate { registry.LatestAvailable("PocketBots", v0_24_2); }); }