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 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 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 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 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); } }
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(); }
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 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 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 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 NoPackageSelected() { using (var thread = new TemporaryDispatcherThread()) { ButtonBarViewModel buttonBarViewModel = this.CreateViewModel(thread); Assert.Equal(new ButtonViewModel[] { buttonBarViewModel.CloseButton }, buttonBarViewModel.ActionButtons); } }
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 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]); } }
public void SelectAnotherSourceHidesDetails() { 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(); Assert.Equal <FeedSource>(feedSource1, viewModel.SelectedFeedSource); var firstFilter = viewModel.Filters[0]; var itemToSelect = firstFilter.FilteredItems.OfType <object>().First(); thread.Invoke(() => { viewModel.SelectedItem = itemToSelect; // show the details page viewModel.IsDetailsPaneVisible = true; }); thread.Dispatcher.Invoke((Action)(() => { viewModel.SelectedFeedSourceItem = feedSource2; })); viewModel.WaitUntilComplete(); Assert.Equal <FeedSource>(feedSource2, viewModel.SelectedFeedSource); Assert.False(viewModel.IsDetailsPaneVisible, "The details pane should be hidden now."); } }
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 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"); } }
public void DisablablePackageSelected() { using (var thread = new TemporaryDispatcherThread()) { this.PackageManager.SupportsEnableDisable = true; var installedPackage = PackageFactory.Create("disable", new Version(1, 0)); this.PackageManager.InstalledPackages.Add(installedPackage); ButtonBarViewModel buttonBarViewModel = this.CreateViewModel(thread); this.SelectPackage(thread, buttonBarViewModel.NuGetViewModel, Resources.Filter_Installed, installedPackage.Id); Assert.Equal( new ButtonViewModel[] { buttonBarViewModel.DisableButton, buttonBarViewModel.UninstallButton, buttonBarViewModel.CloseButton }, buttonBarViewModel.ActionButtons); } }
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)); } }
public void UninstallPackageFromInstalled() { using (var thread = new TemporaryDispatcherThread()) { var package = PackageFactory.Create("uninstall"); this.PackageManager.InstalledPackages.Add(package); ButtonBarViewModel buttonBarViewModel = this.CreateViewModel(thread); this.SelectPackage(thread, buttonBarViewModel.NuGetViewModel, Resources.Filter_Installed, 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 UpdatablePackageSelectedUpdatesFilter() { using (var thread = new TemporaryDispatcherThread()) { var installedPackage = PackageFactory.Create("update", new Version(1, 0)); this.PackageManager.InstalledPackages.Add(installedPackage); var remotePackage = PackageFactory.Create("update", new Version(2, 0)); this.PackageManager.RemotePackages.Add(remotePackage); ButtonBarViewModel buttonBarViewModel = this.CreateViewModel(thread); this.SelectPackage(thread, buttonBarViewModel.NuGetViewModel, Resources.Filter_Updated, installedPackage.Id); Assert.Equal( new ButtonViewModel[] { buttonBarViewModel.UpdateButton, buttonBarViewModel.UninstallButton, buttonBarViewModel.CloseButton }, buttonBarViewModel.ActionButtons); } }
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 PrereleaseFilterVisibilityForExtensionsGallery() { 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); buttonBarViewModel.NuGetViewModel.ShouldShowPrereleaseFilter = false; 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.NotEqual <Visibility>(buttonBarViewModel.NuGetViewModel.ShowPrereleaseFilter, 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.ShowPrereleaseFilter, Visibility.Visible); // Select Updates Filter and check that the prerelease filter is visible this.SelectFilter(thread, buttonBarViewModel.NuGetViewModel, Resources.Filter_Updated); Assert.NotEqual <Visibility>(buttonBarViewModel.NuGetViewModel.ShowPrereleaseFilter, 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.ShowPrereleaseFilter, Visibility.Visible); } }
public void EnablePackage() { using (var thread = new TemporaryDispatcherThread()) { this.PackageManager.SupportsEnableDisable = true; var installed = PackageFactory.Create("enable", new Version(1, 0)); this.PackageManager.InstalledPackages.Add(installed); this.PackageManager.DisabledPackages.Add(installed); ButtonBarViewModel buttonBarViewModel = this.CreateViewModel(thread); this.SelectPackage(thread, buttonBarViewModel.NuGetViewModel, Resources.Filter_Installed, installed.Id); this.ClickButton(thread, buttonBarViewModel, buttonBarViewModel.EnableButton); 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.DisabledPackages.Any(), "No packages should be disabled."); } }
/// <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 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 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); } }