From 1dfa232205ee97f75e75bf63a4971ce183cb5e78 Mon Sep 17 00:00:00 2001 From: Matt Ward Date: Sun, 30 Sep 2012 14:33:59 +0100 Subject: [PATCH] Hide disabled NuGet package sources in manage packages dialog. --- .../Project/Src/PackagesViewModel.cs | 2 +- .../Src/AvailablePackagesViewModelTests.cs | 26 +++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/AddIns/Misc/PackageManagement/Project/Src/PackagesViewModel.cs b/src/AddIns/Misc/PackageManagement/Project/Src/PackagesViewModel.cs index e57e114f84..511a4587d2 100644 --- a/src/AddIns/Misc/PackageManagement/Project/Src/PackagesViewModel.cs +++ b/src/AddIns/Misc/PackageManagement/Project/Src/PackagesViewModel.cs @@ -342,7 +342,7 @@ namespace ICSharpCode.PackageManagement public IEnumerable PackageSources { get { - foreach (PackageSource packageSource in registeredPackageRepositories.PackageSources) { + foreach (PackageSource packageSource in registeredPackageRepositories.PackageSources.GetEnabledPackageSources()) { yield return packageSource; } if (registeredPackageRepositories.PackageSources.HasMultiplePackageSources) { diff --git a/src/AddIns/Misc/PackageManagement/Test/Src/AvailablePackagesViewModelTests.cs b/src/AddIns/Misc/PackageManagement/Test/Src/AvailablePackagesViewModelTests.cs index 537068d345..0f1fd884cb 100644 --- a/src/AddIns/Misc/PackageManagement/Test/Src/AvailablePackagesViewModelTests.cs +++ b/src/AddIns/Misc/PackageManagement/Test/Src/AvailablePackagesViewModelTests.cs @@ -76,6 +76,17 @@ namespace PackageManagement.Tests registeredPackageRepositories.AddPackageSources(sources); } + PackageSource AddTwoPackageSourcesToRegisteredSourcesWithFirstOneDisabled() + { + var expectedPackageSources = new PackageSource[] { + new PackageSource("http://first.com", "First") { IsEnabled = false }, + new PackageSource("http://second.com", "Second") { IsEnabled = true } + }; + AddPackageSourcesToRegisteredSources(expectedPackageSources); + registeredPackageRepositories.HasMultiplePackageSources = true; + return expectedPackageSources[0]; + } + void CreateNewActiveRepositoryWithDifferentPackages() { var package = new FakePackage("NewRepositoryPackageId"); @@ -429,5 +440,20 @@ namespace PackageManagement.Tests }; PackageCollectionAssert.AreEqual(expectedPackages, allPackages); } + + [Test] + public void PackageSources_TwoPackageSourcesButFirstIsDisabled_DoesNotReturnDisabledPackageSource() + { + CreateRegisteredPackageRepositories(); + AddTwoPackageSourcesToRegisteredSourcesWithFirstOneDisabled(); + CreateViewModel(registeredPackageRepositories); + + IEnumerable packageSources = viewModel.PackageSources; + + bool containsDisabledPackageSource = packageSources.Contains(registeredPackageRepositories.PackageSources[0]); + bool containsEnabledPackageSource = packageSources.Contains(registeredPackageRepositories.PackageSources[1]); + Assert.IsFalse(containsDisabledPackageSource); + Assert.IsTrue(containsEnabledPackageSource); + } } }