Browse Source

Support aggregate package source in NuGet.config settings.

pull/15/head
mrward 15 years ago
parent
commit
e169a3c006
  1. 20
      src/AddIns/Misc/PackageManagement/Project/Src/RegisteredPackageSourceSettings.cs
  2. 13
      src/AddIns/Misc/PackageManagement/Test/Src/PackageManagementOptionsTests.cs

20
src/AddIns/Misc/PackageManagement/Project/Src/RegisteredPackageSourceSettings.cs

@ -14,6 +14,9 @@ namespace ICSharpCode.PackageManagement
public static readonly string PackageSourcesSectionName = "packageSources"; public static readonly string PackageSourcesSectionName = "packageSources";
public static readonly string ActivePackageSourceSectionName = "activePackageSource"; public static readonly string ActivePackageSourceSectionName = "activePackageSource";
public static readonly PackageSource AggregatePackageSource =
new PackageSource("(Aggregate source)", "All") { IsAggregate = true };
ISettings settings; ISettings settings;
RegisteredPackageSources packageSources; RegisteredPackageSources packageSources;
PackageSource activePackageSource; PackageSource activePackageSource;
@ -28,6 +31,18 @@ namespace ICSharpCode.PackageManagement
{ {
IList<KeyValuePair<string, string>> packageSources = settings.GetValues(ActivePackageSourceSectionName); IList<KeyValuePair<string, string>> packageSources = settings.GetValues(ActivePackageSourceSectionName);
activePackageSource = PackageSourceConverter.ConvertFromFirstKeyValuePair(packageSources); activePackageSource = PackageSourceConverter.ConvertFromFirstKeyValuePair(packageSources);
if (IsActivePackageSourceAggregatePackageSource()) {
activePackageSource.IsAggregate = true;
}
}
bool IsActivePackageSourceAggregatePackageSource()
{
if (activePackageSource != null) {
return activePackageSource.Source == AggregatePackageSource.Source;
}
return false;
} }
public RegisteredPackageSources PackageSources { public RegisteredPackageSources PackageSources {
@ -81,9 +96,14 @@ namespace ICSharpCode.PackageManagement
public PackageSource ActivePackageSource { public PackageSource ActivePackageSource {
get { get {
if (activePackageSource != null) {
if (activePackageSource.IsAggregate) {
return activePackageSource;
}
if (PackageSources.Contains(activePackageSource)) { if (PackageSources.Contains(activePackageSource)) {
return activePackageSource; return activePackageSource;
} }
}
return null; return null;
} }
set { set {

13
src/AddIns/Misc/PackageManagement/Test/Src/PackageManagementOptionsTests.cs

@ -271,5 +271,18 @@ namespace PackageManagement.Tests
Assert.DoesNotThrow(() => SaveOptions()); Assert.DoesNotThrow(() => SaveOptions());
} }
[Test]
public void ActivePackageSource_AggregatePackageSourceIsActivePackageSourceInSettings_ReturnsAggregatePackageSource()
{
CreateSettings();
var expectedPackageSource = RegisteredPackageSourceSettings.AggregatePackageSource;
fakeSettings.SetFakeActivePackageSource(expectedPackageSource);
CreateOptions(fakeSettings);
var activePackageSource = options.ActivePackageSource;
Assert.AreEqual(expectedPackageSource, activePackageSource);
}
} }
} }

Loading…
Cancel
Save