From 90338b852f17e6e2b3a1064167de3e2ea0e6831a Mon Sep 17 00:00:00 2001 From: Matt Ward Date: Mon, 9 May 2011 20:43:10 +0100 Subject: [PATCH] Fix argument out of range exception when modify the registered NuGet package sources in Tools Options. --- .../Project/Src/RegisteredPackageRepositories.cs | 5 ++++- .../Test/Src/RegisteredPackageRepositoriesTests.cs | 12 ++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/AddIns/Misc/PackageManagement/Project/Src/RegisteredPackageRepositories.cs b/src/AddIns/Misc/PackageManagement/Project/Src/RegisteredPackageRepositories.cs index 21570b93db..8956745f0f 100644 --- a/src/AddIns/Misc/PackageManagement/Project/Src/RegisteredPackageRepositories.cs +++ b/src/AddIns/Misc/PackageManagement/Project/Src/RegisteredPackageRepositories.cs @@ -2,6 +2,7 @@ // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) using System; +using System.Linq; using NuGet; namespace ICSharpCode.PackageManagement @@ -54,7 +55,9 @@ namespace ICSharpCode.PackageManagement get { activePackageSource = options.ActivePackageSource; if (activePackageSource == null) { - activePackageSource = options.PackageSources[0]; + if (options.PackageSources.Any()) { + activePackageSource = options.PackageSources[0]; + } } return activePackageSource; } diff --git a/src/AddIns/Misc/PackageManagement/Test/Src/RegisteredPackageRepositoriesTests.cs b/src/AddIns/Misc/PackageManagement/Test/Src/RegisteredPackageRepositoriesTests.cs index 659d194d88..f9c14fe2b6 100644 --- a/src/AddIns/Misc/PackageManagement/Test/Src/RegisteredPackageRepositoriesTests.cs +++ b/src/AddIns/Misc/PackageManagement/Test/Src/RegisteredPackageRepositoriesTests.cs @@ -261,6 +261,18 @@ namespace PackageManagement.Tests Assert.AreEqual(expectedRepository, repository); } + + [Test] + public void ActivePackageSource_AllPackageSourcesCleared_ReturnsNullAndDoesNotThrowArgumentOutOfRangeException() + { + CreateRegisteredPackageRepositories(); + packageSourcesHelper.Options.ActivePackageSource = null; + registeredRepositories.PackageSources.Clear(); + + var activePackageSource = registeredRepositories.ActivePackageSource; + + Assert.IsNull(activePackageSource); + } } }