public void OnModTextFilterChanges_CallsEventHandler() { var called_n = 0; var item = new MainModList(delegate { called_n++; }, delegate { return(null); }); Assert.That(called_n == 1); item.ModNameFilter = "randomString"; Assert.That(called_n == 2); item.ModNameFilter = "randomString"; Assert.That(called_n == 2); }
public void OnModTypeFilterChanges_CallsEventHandler() { var called_n = 0; var item = new MainModList(delegate { called_n++; }); Assert.That(called_n == 1); item.ModFilter = GUIModFilter.Installed; Assert.That(called_n == 2); item.ModFilter = GUIModFilter.Installed; Assert.That(called_n == 2); }
public void ComputeChangeSetFromModList_WithEmptyList_HasEmptyChangeSet() { using (var tidy = new DisposableKSP()) { KSPManager manager = new KSPManager(new NullUser(), new FakeWin32Registry(tidy.KSP)) { CurrentInstance = tidy.KSP }; var item = new MainModList(delegate { }); Assert.That(item.ComputeChangeSetFromModList(Registry.Empty(), manager.CurrentInstance), Is.Empty); } }
public void IsVisible_WithAllAndNoNameFilter_ReturnsTrueForCompatible() { using (var tidy = new DisposableKSP()) { KSPManager manager = new KSPManager(new NullUser(), new FakeWin32Registry(tidy.KSP)) { CurrentInstance = tidy.KSP }; var ckan_mod = TestData.FireSpitterModule(); var registry = Registry.Empty(); registry.AddAvailable(ckan_mod); var item = new MainModList(delegate { }, null); Assert.That(item.IsVisible(new GUIMod(ckan_mod, registry, manager.CurrentInstance.Version()))); } }
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 Up() { _instance = new DisposableKSP(); _registryManager = RegistryManager.Instance(_instance.KSP); _registry = Registry.Empty(); _manager = new KSPManager( new NullUser(), new FakeConfiguration(_instance.KSP, _instance.KSP.Name) ); // this module contains a ksp_version of "any" which repros our issue _anyVersionModule = TestData.DogeCoinFlag_101_module(); // install it and set it as pre-installed _manager.Cache.Store(TestData.DogeCoinFlag_101_module(), TestData.DogeCoinFlagZip()); _registry.RegisterModule(_anyVersionModule, new string[] { }, _instance.KSP, false); _registry.AddAvailable(_anyVersionModule); ModuleInstaller.GetInstance(_instance.KSP, _manager.Cache, _manager.User).InstallList( new List <CkanModule> { { _anyVersionModule } }, new RelationshipResolverOptions(), _registryManager, new NetAsyncModulesDownloader(_manager.User, _manager.Cache) ); // this module is not for "any" version, to provide another to sort against _registry.AddAvailable(TestData.kOS_014_module()); // test object _modList = new MainModList(null, _manager.User); _listGui = new MainModListGUI(); // todo: refactor the column header code to allow mocking of the GUI without creating columns _listGui.Columns.Add(new DataGridViewCheckBoxColumn()); _listGui.Columns.Add(new DataGridViewCheckBoxColumn()); _listGui.Columns.Add(new DataGridViewCheckBoxColumn()); _listGui.Columns.Add(new DataGridViewCheckBoxColumn()); for (int i = 0; i < 9; i++) { _listGui.Columns.Add(i.ToString(), "Column" + i); } }
public void ConstructModList_NumberOfRows_IsEqualToNumberOfMods() { using (var tidy = new DisposableKSP()) { CKAN.KSPManager manager = new CKAN.KSPManager(new NullUser()) { _CurrentInstance = tidy.KSP }; var registry = CKAN.Registry.Empty(); registry.AddAvailable(TestData.FireSpitterModule()); registry.AddAvailable(TestData.kOS_014_module()); var modList = MainModList.ConstructModList(new List <GUIMod> { new GUIMod(TestData.FireSpitterModule(), registry, manager.CurrentInstance.Version()), new GUIMod(TestData.kOS_014_module(), registry, manager.CurrentInstance.Version()) }); Assert.That(modList, Has.Count.EqualTo(2)); } }
public void ConstructModList_NumberOfRows_IsEqualToNumberOfMods() { using (var tidy = new DisposableKSP()) { using ( KSPManager manager = new KSPManager(new NullUser(), new FakeWin32Registry(tidy.KSP)) { CurrentInstance = tidy.KSP }) { var registry = Registry.Empty(); registry.AddAvailable(TestData.RsoModule()); registry.AddAvailable(TestData.kOS_014_module()); var main_mod_list = new MainModList(null, null); var mod_list = main_mod_list.ConstructModList(new List <GUIMod> { new GUIMod(TestData.RsoModule(), registry, manager.CurrentInstance.Version()), new GUIMod(TestData.kOS_014_module(), registry, manager.CurrentInstance.Version()) }); Assert.That(mod_list, Has.Count.EqualTo(2)); } } }
public void ComputeChangeSetFromModList_WithEmptyList_HasEmptyChangeSet() { var item = new MainModList(delegate { }, delegate { return(null); }); Assert.That(item.ComputeUserChangeSet(), Is.Empty); }