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