public void CreateViewModel() { using (var thread = new TemporaryDispatcherThread()) { var feedSource = new FeedSource("http://oo.com", "test source"); var feedSourceStore = new InMemoryFeedSourceStore(feedSource); var packageSourcesViewModel = new PackageSourcesViewModel(new PackageSourcesModel(feedSource, feedSourceStore)); var packageManager = new InMemoryPackageManager(); NuGetViewModel viewModel = null; thread.Dispatcher.Invoke((Action)(() => { viewModel = new NuGetViewModel( this.Descriptor.Object, this.Host.Object, packageSourcesViewModel, (uri, site) => packageManager, this.ReadonlyDestination, thread.Scheduler); })); viewModel.WaitUntilComplete(); Assert.False(viewModel.Loading, "The view model should be done loading"); Assert.Equal<FeedSource>(feedSource, viewModel.SelectedFeedSource); } }
public void DeclineEula() { using (var thread = new TemporaryDispatcherThread()) { var package = PackageFactory.Create("install"); this.PackageManager.RemotePackages.Add(package); ButtonBarViewModel buttonBarViewModel = this.CreateViewModel(thread); this.SelectPackage(thread, buttonBarViewModel.NuGetViewModel, Resources.Filter_All, package.Id); this.ClickButton(thread, buttonBarViewModel, buttonBarViewModel.InstallButton, PackageViewModelAction.InstallOrUninstall); Assert.True(buttonBarViewModel.NuGetViewModel.IsDetailsPaneVisible, "The details page should be shown."); Assert.Equal<PackageViewModelAction>(PackageViewModelAction.InstallOrUninstall, buttonBarViewModel.NuGetViewModel.PackageAction); this.ClickButton(thread, buttonBarViewModel, buttonBarViewModel.YesButton); Assert.True(buttonBarViewModel.NuGetViewModel.IsLicensePageVisible, "The license page should be shown."); this.ClickButton(thread, buttonBarViewModel, buttonBarViewModel.DeclineButton); Assert.False(buttonBarViewModel.NuGetViewModel.IsDetailsPaneVisible, "The details page should not be shown."); Assert.False(buttonBarViewModel.NuGetViewModel.IsLicensePageVisible, "The license page should not be shown."); Assert.False(this.PackageManager.InstalledPackages.Any(), "Nothing should be installed."); } }
public void SelectedFeedSourceUsed() { using (var thread = new TemporaryDispatcherThread()) { var feedSource = new FeedSource("http://oo.com", "test source"); var sources = new FeedSource[] { new FeedSource("http://fake.com", "this shouldn't be selected"), feedSource }; var feedSourceStore = new InMemoryFeedSourceStore(feedSource, sources); var packageSourcesViewModel = new PackageSourcesViewModel(new PackageSourcesModel(feedSource, feedSourceStore)); var packageManager = new InMemoryPackageManager(); NuGetViewModel viewModel = null; thread.Dispatcher.Invoke((Action)(() => { viewModel = new NuGetViewModel( this.Descriptor.Object, this.Host.Object, packageSourcesViewModel, (uri, site) => packageManager, this.ReadonlyDestination, thread.Scheduler); })); viewModel.WaitUntilComplete(); Assert.Equal<FeedSource>(packageSourcesViewModel.ActiveFeedSource, viewModel.SelectedFeedSource); } }
public void NoPackageSelected() { using (var thread = new TemporaryDispatcherThread()) { ButtonBarViewModel buttonBarViewModel = this.CreateViewModel(thread); Assert.Equal(new ButtonViewModel[] { buttonBarViewModel.CloseButton }, buttonBarViewModel.ActionButtons); } }
public void InstalledPackageSelectedInstalledFilter() { using (var thread = new TemporaryDispatcherThread()) { var package = PackageFactory.Create("installed"); this.PackageManager.InstalledPackages.Add(package); ButtonBarViewModel buttonBarViewModel = this.CreateViewModel(thread); this.SelectPackage(thread, buttonBarViewModel.NuGetViewModel, Resources.Filter_Installed, package.Id); Assert.Equal( new ButtonViewModel[] { buttonBarViewModel.UninstallButton, buttonBarViewModel.CloseButton }, buttonBarViewModel.ActionButtons); } }
public void UninstallPackageFromAll() { using (var thread = new TemporaryDispatcherThread()) { var package = PackageFactory.Create("uninstall"); this.PackageManager.InstalledPackages.Add(package); this.PackageManager.RemotePackages.Add(package); ButtonBarViewModel buttonBarViewModel = this.CreateViewModel(thread); this.SelectPackage(thread, buttonBarViewModel.NuGetViewModel, Resources.Filter_All, package.Id); this.ClickButton(thread, buttonBarViewModel, buttonBarViewModel.UninstallButton); Assert.True(buttonBarViewModel.NuGetViewModel.IsUninstallPageVisible, "The uninstall page should be shown."); this.ClickButton(thread, buttonBarViewModel, buttonBarViewModel.YesButton); Assert.False(this.PackageManager.InstalledPackages.Any(), "The package should be uninstalled"); } }
public void FirstFilterSelected() { using (var thread = new TemporaryDispatcherThread()) { var feedSource = new FeedSource("http://oo.com", "test source"); var feedSourceStore = new InMemoryFeedSourceStore(feedSource); var packageSourcesViewModel = new PackageSourcesViewModel(new PackageSourcesModel(feedSource, feedSourceStore)); var packageManager = new InMemoryPackageManager(); NuGetViewModel viewModel = null; thread.Dispatcher.Invoke((Action)(() => { viewModel = new NuGetViewModel( this.Descriptor.Object, this.Host.Object, packageSourcesViewModel, (uri, site) => packageManager, this.ReadonlyDestination, thread.Scheduler); })); viewModel.WaitUntilComplete(); Assert.Equal<IListViewFilter>(viewModel.Filters[0], viewModel.SelectedFilter); } }
public void UpdateAllShownUpdatablePackageSelectedUpdatesFilter() { using (var thread = new TemporaryDispatcherThread()) { var installedPackage1 = PackageFactory.Create("update1", new Version(1, 0)); var installedPackage2 = PackageFactory.Create("update2", new Version(1, 0)); this.PackageManager.InstalledPackages.Add(installedPackage1); this.PackageManager.InstalledPackages.Add(installedPackage2); var remotePackage1 = PackageFactory.Create("update1", new Version(2, 0)); var remotePackage2 = PackageFactory.Create("update2", new Version(2, 0)); this.PackageManager.RemotePackages.Add(remotePackage1); this.PackageManager.RemotePackages.Add(remotePackage2); ButtonBarViewModel buttonBarViewModel = this.CreateViewModel(thread); this.SelectPackage(thread, buttonBarViewModel.NuGetViewModel, Resources.Filter_Updated, installedPackage1.Id); Assert.Equal( new ButtonViewModel[] { buttonBarViewModel.UpdateAllButton, buttonBarViewModel.UpdateButton, buttonBarViewModel.UninstallButton, buttonBarViewModel.CloseButton }, buttonBarViewModel.ActionButtons); } }
public void EnablablePackageSelected() { using (var thread = new TemporaryDispatcherThread()) { this.PackageManager.SupportsEnableDisable = true; var installedPackage = PackageFactory.Create("enable", new Version(1, 0)); this.PackageManager.InstalledPackages.Add(installedPackage); this.PackageManager.DisabledPackages.Add(installedPackage); ButtonBarViewModel buttonBarViewModel = this.CreateViewModel(thread); this.SelectPackage(thread, buttonBarViewModel.NuGetViewModel, Resources.Filter_Installed, installedPackage.Id); Assert.Equal( new ButtonViewModel[] { buttonBarViewModel.EnableButton, buttonBarViewModel.UninstallButton, buttonBarViewModel.CloseButton }, buttonBarViewModel.ActionButtons); } }
public void FeedSourceVisibility() { using (var thread = new TemporaryDispatcherThread()) { this.PackageManager.SupportsEnableDisable = true; var installed = PackageFactory.Create("update", new Version(1, 0)); this.PackageManager.InstalledPackages.Add(installed); var remote = PackageFactory.Create("update", new Version(2, 0)); this.PackageManager.RemotePackages.Add(remote); installed = PackageFactory.Create("disable", new Version(1, 0)); this.PackageManager.InstalledPackages.Add(installed); ButtonBarViewModel buttonBarViewModel = this.CreateViewModel(thread); this.SelectPackage(thread, buttonBarViewModel.NuGetViewModel, Resources.Filter_Installed, installed.Id); this.ClickButton(thread, buttonBarViewModel, buttonBarViewModel.DisableButton); // At this point, there are 2 packages installed; 1 has an update and 1 is disabled // Select All Filter and check that the prerelease filter is visible this.SelectFilter(thread, buttonBarViewModel.NuGetViewModel, Resources.Filter_All); Assert.Equal<Visibility>(buttonBarViewModel.NuGetViewModel.ShowFeedSourceComboBox, Visibility.Visible); // Select Disabled Filter and check that the prerelease filter is NOT visible this.SelectFilter(thread, buttonBarViewModel.NuGetViewModel, Resources.Filter_Disabled); Assert.NotEqual<Visibility>(buttonBarViewModel.NuGetViewModel.ShowFeedSourceComboBox, Visibility.Visible); // Select Updates Filter and check that the prerelease filter is visible this.SelectFilter(thread, buttonBarViewModel.NuGetViewModel, Resources.Filter_Updated); Assert.Equal<Visibility>(buttonBarViewModel.NuGetViewModel.ShowFeedSourceComboBox, Visibility.Visible); // Select Installed Filter and check that the prerelease filter is NOT visible this.SelectFilter(thread, buttonBarViewModel.NuGetViewModel, Resources.Filter_Installed); Assert.NotEqual<Visibility>(buttonBarViewModel.NuGetViewModel.ShowFeedSourceComboBox, Visibility.Visible); } }
public void DisablePackage() { using (var thread = new TemporaryDispatcherThread()) { this.PackageManager.SupportsEnableDisable = true; var installed = PackageFactory.Create("disable", new Version(1, 0)); this.PackageManager.InstalledPackages.Add(installed); ButtonBarViewModel buttonBarViewModel = this.CreateViewModel(thread); this.SelectPackage(thread, buttonBarViewModel.NuGetViewModel, Resources.Filter_Installed, installed.Id); this.ClickButton(thread, buttonBarViewModel, buttonBarViewModel.DisableButton); Assert.False(buttonBarViewModel.NuGetViewModel.IsDetailsPaneVisible, "The details page should not be shown."); Assert.False(buttonBarViewModel.NuGetViewModel.IsLicensePageVisible, "The license page should not be shown."); Assert.True(this.PackageManager.DisabledPackages.Contains(installed), "The package should be disabled."); // check for the package in disabled filter this.SelectPackage(thread, buttonBarViewModel.NuGetViewModel, Resources.Filter_Disabled, installed.Id); } }
public void SelectAnotherFilterHidesDetails() { using (var thread = new TemporaryDispatcherThread()) { var feedSource1 = new FeedSource("http://1.com", "source1"); var feedSource2 = new FeedSource("http://2.com", "source2"); var sources = new FeedSource[] { feedSource1, feedSource2 }; var feedSourceStore = new InMemoryFeedSourceStore(feedSource1, sources); var packageSourcesViewModel = new PackageSourcesViewModel(new PackageSourcesModel(feedSource1, feedSourceStore)); var packageManager = new InMemoryPackageManager(); packageManager.RemotePackages.Add(PackageFactory.Create("select me")); NuGetViewModel viewModel = null; thread.Dispatcher.Invoke((Action)(() => { viewModel = new NuGetViewModel( this.Descriptor.Object, this.Host.Object, packageSourcesViewModel, (uri, site) => packageManager, this.ReadonlyDestination, thread.Scheduler); })); viewModel.WaitUntilComplete(); var firstFilter = viewModel.Filters[0]; Assert.True(viewModel.Filters.Count >= 2, "This test needs at least 2 filters"); Assert.Equal<IListViewFilter>(firstFilter, viewModel.SelectedFilter); var itemToSelect = firstFilter.FilteredItems.OfType<object>().First(); thread.Invoke(() => { viewModel.SelectedItem = itemToSelect; // show the details page viewModel.IsDetailsPaneVisible = true; }); viewModel.SelectedFilter = viewModel.Filters[1]; viewModel.WaitUntilComplete(); Assert.Equal<IListViewFilter>(viewModel.Filters[1], viewModel.SelectedFilter); Assert.False(viewModel.IsDetailsPaneVisible, "The details page should be hidden"); } }
public void SelectAnotherFilter() { using (var thread = new TemporaryDispatcherThread()) { var feedSource1 = new FeedSource("http://1.com", "source1"); var feedSource2 = new FeedSource("http://2.com", "source2"); var sources = new FeedSource[] { feedSource1, feedSource2 }; var feedSourceStore = new InMemoryFeedSourceStore(feedSource1, sources); var packageSourcesViewModel = new PackageSourcesViewModel(new PackageSourcesModel(feedSource1, feedSourceStore)); var packageManager = new InMemoryPackageManager(); NuGetViewModel viewModel = null; thread.Dispatcher.Invoke((Action)(() => { viewModel = new NuGetViewModel( this.Descriptor.Object, this.Host.Object, packageSourcesViewModel, (uri, site) => packageManager, this.ReadonlyDestination, thread.Scheduler); })); viewModel.WaitUntilComplete(); Assert.True(viewModel.Filters.Count >= 2, "This test needs at least 2 filters"); Assert.Equal<IListViewFilter>(viewModel.Filters[0], viewModel.SelectedFilter); viewModel.SelectedFilter = viewModel.Filters[1]; Assert.Equal<IListViewFilter>(viewModel.Filters[1], viewModel.SelectedFilter); } }
public void SelectAnotherSource() { using (var thread = new TemporaryDispatcherThread()) { var feedSource1 = new FeedSource("http://1.com", "source1"); var feedSource2 = new FeedSource("http://2.com", "source2"); var sources = new FeedSource[] { feedSource1, feedSource2 }; var feedSourceStore = new InMemoryFeedSourceStore(feedSource1, sources); var packageSourcesViewModel = new PackageSourcesViewModel(new PackageSourcesModel(feedSource1, feedSourceStore)); var packageManager = new InMemoryPackageManager(); NuGetViewModel viewModel = null; thread.Dispatcher.Invoke((Action)(() => { viewModel = new NuGetViewModel( this.Descriptor.Object, this.Host.Object, packageSourcesViewModel, (uri, site) => packageManager, this.ReadonlyDestination, thread.Scheduler); })); viewModel.WaitUntilComplete(); Assert.Equal<FeedSource>(feedSource1, viewModel.SelectedFeedSource); thread.Dispatcher.Invoke((Action)(() => { viewModel.SelectedFeedSourceItem = feedSource2; })); viewModel.WaitUntilComplete(); Assert.Equal<FeedSource>(feedSource2, viewModel.SelectedFeedSource); } }
public void UninstallPageButtons() { using (var thread = new TemporaryDispatcherThread()) { var package = PackageFactory.Create("installed"); this.PackageManager.InstalledPackages.Add(package); ButtonBarViewModel buttonBarViewModel = this.CreateViewModel(thread); this.SelectPackage(thread, buttonBarViewModel.NuGetViewModel, Resources.Filter_Installed, package.Id); Assert.True(buttonBarViewModel.UninstallButton.Command.CanExecute(null)); thread.Invoke(() => { buttonBarViewModel.UninstallButton.Command.Execute(null); }); buttonBarViewModel.NuGetViewModel.WaitUntilComplete(); Assert.Equal( new ButtonViewModel[] { buttonBarViewModel.YesButton, buttonBarViewModel.NoButton }, buttonBarViewModel.ActionButtons); } }
public void UpdatePackageFromInstalled() { using (var thread = new TemporaryDispatcherThread()) { var installed = PackageFactory.Create("update", new Version(1, 0)); this.PackageManager.InstalledPackages.Add(installed); var remote = PackageFactory.Create("update", new Version(2, 0)); this.PackageManager.RemotePackages.Add(remote); ButtonBarViewModel buttonBarViewModel = this.CreateViewModel(thread); this.SelectPackage(thread, buttonBarViewModel.NuGetViewModel, Resources.Filter_Installed, installed.Id); this.ClickButton(thread, buttonBarViewModel, buttonBarViewModel.UpdateButton, PackageViewModelAction.Update); Assert.True(buttonBarViewModel.NuGetViewModel.IsDetailsPaneVisible, "The details page should be shown."); Assert.Equal<PackageViewModelAction>(PackageViewModelAction.Update, buttonBarViewModel.NuGetViewModel.PackageAction); this.ClickButton(thread, buttonBarViewModel, buttonBarViewModel.YesButton); Assert.True(buttonBarViewModel.NuGetViewModel.IsLicensePageVisible, "The license page should be shown."); this.ClickButton(thread, buttonBarViewModel, buttonBarViewModel.AcceptButton); var installedPackage = this.PackageManager.InstalledPackages.FirstOrDefault(); Assert.Equal(remote, installedPackage); } }
public void SourceWithPackages() { using (var thread = new TemporaryDispatcherThread()) { var feedSource = new FeedSource("http://1.com", "source1"); var feedSourceStore = new InMemoryFeedSourceStore(feedSource); var packageSourcesViewModel = new PackageSourcesViewModel(new PackageSourcesModel(feedSource, feedSourceStore)); var packageManager = new InMemoryPackageManager(); packageManager.RemotePackages.Add(PackageFactory.Create("package1")); NuGetViewModel viewModel = null; thread.Dispatcher.Invoke((Action)(() => { viewModel = new NuGetViewModel( this.Descriptor.Object, this.Host.Object, packageSourcesViewModel, (uri, site) => packageManager, this.ReadonlyDestination, thread.Scheduler); })); viewModel.WaitUntilComplete(); Assert.True(viewModel.Filters.Any(f => f.Count > 0), "One of the filters should have some items"); } }
public void UpdateAllPackagesFromUpdates() { using (var thread = new TemporaryDispatcherThread()) { var installed1 = PackageFactory.Create("update1", new Version(1, 0)); var installed2 = PackageFactory.Create("update2", new Version(1, 0)); this.PackageManager.InstalledPackages.Add(installed1); this.PackageManager.InstalledPackages.Add(installed2); var remote1 = PackageFactory.Create("update1", new Version(2, 0)); var remote2 = PackageFactory.Create("update2", new Version(2, 0)); this.PackageManager.RemotePackages.Add(remote1); this.PackageManager.RemotePackages.Add(remote2); ButtonBarViewModel buttonBarViewModel = this.CreateViewModel(thread); this.SelectPackage(thread, buttonBarViewModel.NuGetViewModel, Resources.Filter_Updated, installed1.Id); this.ClickButton(thread, buttonBarViewModel, buttonBarViewModel.UpdateAllButton, PackageViewModelAction.UpdateAll); Assert.True(buttonBarViewModel.NuGetViewModel.IsLicensePageVisible, "The license page should be shown."); Assert.Equal<PackageViewModelAction>(PackageViewModelAction.UpdateAll, buttonBarViewModel.NuGetViewModel.PackageAction); this.ClickButton(thread, buttonBarViewModel, buttonBarViewModel.AcceptButton); var installedPackages = this.PackageManager.InstalledPackages.ToArray(); Assert.Equal(remote1, installedPackages[0]); Assert.Equal(remote2, installedPackages[1]); } }
private void SelectPackage(TemporaryDispatcherThread thread, NuGetViewModel viewModel, string filterName, string packageId) { this.SelectFilter(thread, viewModel, filterName); object packageItem; if (viewModel.SelectedFilter is Data.VirtualizingListViewFilter) { packageItem = viewModel.SelectedFilter.FilteredItems .OfType<Data.VirtualizingListEntry>() .Where(entry => entry.Item != null && ((PackageViewModel)entry.Item).Id == packageId) .FirstOrDefault(); } else { packageItem = viewModel.SelectedFilter.FilteredItems .OfType<ListViewItemWrapper>() .Where(item => item.Item != null && ((PackageViewModel)item.Item).Id == packageId) .FirstOrDefault(); } Assert.NotNull(packageItem); thread.Invoke(() => { viewModel.SelectedItem = packageItem; }); Assert.Equal(packageItem, viewModel.SelectedItem); Assert.NotNull(viewModel.SelectedPackage); Assert.Equal<string>(packageId, viewModel.SelectedPackage.Id); }
public void SelectMandatoryPackage() { using (var thread = new TemporaryDispatcherThread()) { this.PackageManager.SupportsEnableDisable = true; var installed = PackageFactory.Create("WebMatrixExtensionsGallery", new Version(1, 0)); this.PackageManager.InstalledPackages.Add(installed); ButtonBarViewModel buttonBarViewModel = this.CreateViewModel(thread); this.SelectPackage(thread, buttonBarViewModel.NuGetViewModel, Resources.Filter_Installed, installed.Id); Assert.False(buttonBarViewModel.NuGetViewModel.UninstallCommand.CanExecute(null), "The uninstall command should be disabled"); Assert.True(buttonBarViewModel.NuGetViewModel.DisableCommand.CanExecute(null), "The disable command should be enabled"); } }
private void ClickButton(TemporaryDispatcherThread thread, ButtonBarViewModel viewModel, ButtonViewModel button, object parameter = null) { Assert.True(button.Command.CanExecute(parameter), "The button should be enabled."); Assert.True(viewModel.ActionButtons.Contains(button), "The button should be visible."); thread.Invoke(() => { button.Command.Execute(parameter); }); viewModel.NuGetViewModel.WaitUntilComplete(); }
/// <summary> /// Creates a NuGetViewModel and ButtonBarViewModel for testing /// </summary> private ButtonBarViewModel CreateViewModel(TemporaryDispatcherThread thread) { ButtonBarViewModel buttonBarViewModel = null; NuGetViewModel nuGetViewModel = null; thread.Invoke(() => { nuGetViewModel = new NuGetViewModel( this.Descriptor.Object, this.Host.Object, this.PackageSourcesViewModel, (uri, site) => this.PackageManager, this.ReadonlyDestination, thread.Scheduler); buttonBarViewModel = new ButtonBarViewModel(nuGetViewModel, this.CloseCommand); }); nuGetViewModel.WaitUntilComplete(); return buttonBarViewModel; }
public void UpdateAllNotShownWhenOnly1PackageHasUpdates() { using (var thread = new TemporaryDispatcherThread()) { var installedPackage1 = PackageFactory.Create("update1", new Version(1, 0)); this.PackageManager.InstalledPackages.Add(installedPackage1); var remotePackage1 = PackageFactory.Create("update1", new Version(2, 0)); this.PackageManager.RemotePackages.Add(remotePackage1); ButtonBarViewModel buttonBarViewModel = this.CreateViewModel(thread); this.SelectPackage(thread, buttonBarViewModel.NuGetViewModel, Resources.Filter_Updated, installedPackage1.Id); Assert.False(buttonBarViewModel.ActionButtons.Contains(buttonBarViewModel.UpdateAllButton)); Assert.True(buttonBarViewModel.ActionButtons.Contains(buttonBarViewModel.UpdateButton)); } }
private void SelectFilter(TemporaryDispatcherThread thread, NuGetViewModel viewModel, string filterName) { var filterToSelect = viewModel.Filters.Where(f => f.Name == filterName).FirstOrDefault(); Assert.NotNull(filterToSelect); thread.Invoke(() => { viewModel.SelectedFilter = filterToSelect; }); Assert.Equal(filterName, viewModel.SelectedFilter.Name); }
public void SelectAPackage() { using (var thread = new TemporaryDispatcherThread()) { var feedSource = new FeedSource("http://1.com", "source1"); var feedSourceStore = new InMemoryFeedSourceStore(feedSource); var packageSourcesViewModel = new PackageSourcesViewModel(new PackageSourcesModel(feedSource, feedSourceStore)); var packageManager = new InMemoryPackageManager(); packageManager.RemotePackages.Add(PackageFactory.Create("package1")); NuGetViewModel viewModel = null; thread.Invoke(() => { viewModel = new NuGetViewModel( this.Descriptor.Object, this.Host.Object, packageSourcesViewModel, (uri, site) => packageManager, this.ReadonlyDestination, thread.Scheduler); }); viewModel.WaitUntilComplete(); var filterToSelect = viewModel.Filters.First(f => f.Count > 0); if (viewModel.SelectedFilter != filterToSelect) { viewModel.SelectedFilter = filterToSelect; } Assert.Equal<IListViewFilter>(filterToSelect, viewModel.SelectedFilter); Assert.Null(viewModel.SelectedItem); var itemToSelect = filterToSelect.FilteredItems.OfType<object>().First(); thread.Invoke(() => { viewModel.SelectedItem = itemToSelect; }); Assert.Equal(itemToSelect, viewModel.SelectedItem); Assert.NotNull(itemToSelect); } }
public void SelectPrereleaseFilter() { using (var thread = new TemporaryDispatcherThread()) { var feedSource = new FeedSource("http://oo.com", "test source"); var feedSourceStore = new InMemoryFeedSourceStore(feedSource); var packageSourcesViewModel = new PackageSourcesViewModel(new PackageSourcesModel(feedSource, feedSourceStore)); var packageManager = new InMemoryPackageManager(); NuGetViewModel viewModel = null; thread.Dispatcher.Invoke((Action)(() => { viewModel = new NuGetViewModel( this.Descriptor.Object, this.Host.Object, packageSourcesViewModel, (uri, site) => packageManager, this.ReadonlyDestination, thread.Scheduler); })); viewModel.WaitUntilComplete(); Assert.Equal<string>(Resources.Prerelease_Filter_StableOnly, viewModel.SelectedPrereleaseFilter); viewModel.SelectedPrereleaseFilter = Resources.Prerelease_Filter_IncludePrerelease; Assert.Equal<string>(Resources.Prerelease_Filter_IncludePrerelease, viewModel.SelectedPrereleaseFilter); } }
public void UpdateAllPackagesFromUpdatesAndInstallAnotherPackage() { using (var thread = new TemporaryDispatcherThread()) { var installed1 = PackageFactory.Create("update1", new Version(1, 0)); var installed2 = PackageFactory.Create("update2", new Version(1, 0)); this.PackageManager.InstalledPackages.Add(installed1); this.PackageManager.InstalledPackages.Add(installed2); var remote1 = PackageFactory.Create("update1", new Version(2, 0)); var remote2 = PackageFactory.Create("update2", new Version(2, 0)); var remote3 = PackageFactory.Create("install1", new Version(1, 0)); this.PackageManager.RemotePackages.Add(remote1); this.PackageManager.RemotePackages.Add(remote2); this.PackageManager.RemotePackages.Add(remote3); // Perform UpdateAll now ButtonBarViewModel buttonBarViewModel = this.CreateViewModel(thread); this.SelectPackage(thread, buttonBarViewModel.NuGetViewModel, Resources.Filter_Updated, installed1.Id); this.ClickButton(thread, buttonBarViewModel, buttonBarViewModel.UpdateAllButton, PackageViewModelAction.UpdateAll); Assert.True(buttonBarViewModel.NuGetViewModel.IsLicensePageVisible, "The license page should be shown."); Assert.True(buttonBarViewModel.NuGetViewModel.IsUpdatingAll, "Updating all should be true"); Assert.False(buttonBarViewModel.NuGetViewModel.NotUpdatingAll, "Not Updating all should be false"); Assert.Equal<PackageViewModelAction>(PackageViewModelAction.UpdateAll, buttonBarViewModel.NuGetViewModel.PackageAction); this.ClickButton(thread, buttonBarViewModel, buttonBarViewModel.AcceptButton); // Perform Install Now this.SelectPackage(thread, buttonBarViewModel.NuGetViewModel, Resources.Filter_All, remote3.Id); this.ClickButton(thread, buttonBarViewModel, buttonBarViewModel.InstallButton, PackageViewModelAction.InstallOrUninstall); Assert.True(buttonBarViewModel.NuGetViewModel.IsDetailsPaneVisible, "The details page should be shown."); Assert.Equal<PackageViewModelAction>(PackageViewModelAction.InstallOrUninstall, buttonBarViewModel.NuGetViewModel.PackageAction); this.ClickButton(thread, buttonBarViewModel, buttonBarViewModel.YesButton); Assert.True(buttonBarViewModel.NuGetViewModel.IsLicensePageVisible, "The license page should be shown."); Assert.False(buttonBarViewModel.NuGetViewModel.IsUpdatingAll, "Updating all should be false"); Assert.True(buttonBarViewModel.NuGetViewModel.NotUpdatingAll, "Not Updating all should be true"); Assert.Equal<PackageViewModelAction>(PackageViewModelAction.InstallOrUninstall, buttonBarViewModel.NuGetViewModel.PackageAction); this.ClickButton(thread, buttonBarViewModel, buttonBarViewModel.AcceptButton); var installedPackages = this.PackageManager.InstalledPackages.ToArray(); Assert.Equal(remote1, installedPackages[0]); Assert.Equal(remote2, installedPackages[1]); Assert.Equal(remote3, installedPackages[2]); } }