Browse Source

Use NuGet.Config file to store package sources.

pull/15/head
mrward 15 years ago
parent
commit
464759343d
  1. 2
      src/AddIns/Misc/PackageManagement/PackageManagement.sln
  2. 1
      src/AddIns/Misc/PackageManagement/Project/PackageManagement.csproj
  3. 2
      src/AddIns/Misc/PackageManagement/Project/Src/Design/DesignTimeRegisteredPackageSourcesViewModel.cs
  4. 2
      src/AddIns/Misc/PackageManagement/Project/Src/Design/FakePackageManagementService.cs
  5. 115
      src/AddIns/Misc/PackageManagement/Project/Src/Design/FakeSettings.cs
  6. 32
      src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementOptions.cs
  7. 124
      src/AddIns/Misc/PackageManagement/Project/Src/RegisteredPackageSources.cs
  8. 2
      src/AddIns/Misc/PackageManagement/Test/PackageManagement.Tests.csproj
  9. 7
      src/AddIns/Misc/PackageManagement/Test/Src/Helpers/OneRegisteredPackageSourceHelper.cs
  10. 28
      src/AddIns/Misc/PackageManagement/Test/Src/Helpers/TestablePackageManagementOptions.cs
  11. 171
      src/AddIns/Misc/PackageManagement/Test/Src/PackageManagementOptionsTests.cs
  12. 2
      src/AddIns/Misc/PackageManagement/Test/Src/PackageRepositoryPathsTests.cs
  13. 66
      src/AddIns/Misc/PackageManagement/Test/Src/RegisteredPackageSourcesTests.cs
  14. 2
      src/AddIns/Misc/PackageManagement/Test/Src/RegisteredPackageSourcesViewModelTests.cs
  15. 2
      src/AddIns/Misc/PackageManagement/Test/Src/SharpDevelopPackageManagerFactoryTests.cs
  16. 2
      src/AddIns/Misc/PackageManagement/Test/Src/SharpDevelopPackageManagerTests.cs

2
src/AddIns/Misc/PackageManagement/PackageManagement.sln

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
# SharpDevelop 4.1.0.7289-alpha
# SharpDevelop 4.1.0.7374-alpha
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PackageManagement", "Project\PackageManagement.csproj", "{AE4AB0FA-6087-4480-AF37-0FA1452B3DA1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PackageManagement.Tests", "Test\PackageManagement.Tests.csproj", "{56E98A01-8398-4A08-9578-C7337711A52B}"

1
src/AddIns/Misc/PackageManagement/Project/PackageManagement.csproj

@ -84,6 +84,7 @@ @@ -84,6 +84,7 @@
<Compile Include="Src\Design\FakePackageRepository.cs" />
<Compile Include="Src\Design\FakeProjectManager.cs" />
<Compile Include="Src\Design\FakeProjectSystem.cs" />
<Compile Include="Src\Design\FakeSettings.cs" />
<Compile Include="Src\Design\WpfDesigner.cs" />
<Compile Include="Src\FolderBrowser.cs" />
<Compile Include="Src\ICompilerMessageView.cs" />

2
src/AddIns/Misc/PackageManagement/Project/Src/Design/DesignTimeRegisteredPackageSourcesViewModel.cs

@ -11,7 +11,7 @@ namespace ICSharpCode.PackageManagement.Design @@ -11,7 +11,7 @@ namespace ICSharpCode.PackageManagement.Design
public class DesignTimeRegisteredPackageSourcesViewModel : RegisteredPackageSourcesViewModel
{
public DesignTimeRegisteredPackageSourcesViewModel()
: this(new PackageManagementOptions(new Properties()))
: this(new PackageManagementOptions(new Properties(), new FakeSettings()))
{
}

2
src/AddIns/Misc/PackageManagement/Project/Src/Design/FakePackageManagementService.cs

@ -13,7 +13,7 @@ namespace ICSharpCode.PackageManagement.Design @@ -13,7 +13,7 @@ namespace ICSharpCode.PackageManagement.Design
{
public event EventHandler PackageInstalled;
PackageManagementOptions options = new PackageManagementOptions(new Properties());
PackageManagementOptions options = new PackageManagementOptions(new Properties(), new FakeSettings());
public List<PackageOperation> PackageOperationsPassedToInstallPackage = new List<PackageOperation>();
protected virtual void OnPackageInstalled()

115
src/AddIns/Misc/PackageManagement/Project/Src/Design/FakeSettings.cs

@ -0,0 +1,115 @@ @@ -0,0 +1,115 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Collections.Generic;
using NuGet;
namespace ICSharpCode.PackageManagement.Design
{
public class FakeSettings : ISettings
{
public List<KeyValuePair<string, string>> PackageSources
= new List<KeyValuePair<string, string>>();
public List<KeyValuePair<string, string>> ActivePackageSourceSettings =
new List<KeyValuePair<string, string>>();
public Dictionary<string, IList<KeyValuePair<string, string>>> Sections
= new Dictionary<string, IList<KeyValuePair<string, string>>>();
public FakeSettings()
{
Sections.Add(RegisteredPackageSources.PackageSourcesSectionName, PackageSources);
Sections.Add(RegisteredPackageSources.ActivePackageSourceSectionName, ActivePackageSourceSettings);
}
public string GetValue(string section, string key)
{
throw new NotImplementedException();
}
public IList<KeyValuePair<string, string>> GetValues(string section)
{
return Sections[section];
}
public void AddFakePackageSource(PackageSource packageSource)
{
var valuePair = new KeyValuePair<string, string>(packageSource.Name, packageSource.Source);
PackageSources.Add(valuePair);
}
public Dictionary<string, KeyValuePair<string, string>> SavedSectionValues =
new Dictionary<string, KeyValuePair<string, string>>();
public void SetValue(string section, string key, string value)
{
SavedSectionValues.Remove(section);
SavedSectionValues.Add(section, new KeyValuePair<string, string>(key, value));
}
public KeyValuePair<string, string> GetValuePassedToSetValueForActivePackageSourceSection()
{
return SavedSectionValues[RegisteredPackageSources.ActivePackageSourceSectionName];
}
public void SetValues(string section, IList<KeyValuePair<string, string>> values)
{
SavedSectionValueLists.Remove(section);
SavedSectionValueLists.Add(section, values);
}
public Dictionary<string, IList<KeyValuePair<string, string>>> SavedSectionValueLists
= new Dictionary<string, IList<KeyValuePair<string, string>>>();
public IList<KeyValuePair<string, string>> GetValuesPassedToSetValuesForPackageSourcesSection()
{
return SavedSectionValueLists[RegisteredPackageSources.PackageSourcesSectionName];
}
public bool DeleteValue(string section, string key)
{
throw new NotImplementedException();
}
public List<string> SectionsDeleted = new List<string>();
public bool DeleteSection(string section)
{
SectionsDeleted.Add(section);
return true;
}
public bool IsPackageSourcesSectionDeleted {
get {
return SectionsDeleted.Contains(RegisteredPackageSources.PackageSourcesSectionName);
}
}
public bool IsActivePackageSourceSectionDeleted {
get {
return SectionsDeleted.Contains(RegisteredPackageSources.ActivePackageSourceSectionName);
}
}
public void SetFakeActivePackageSource(PackageSource packageSource)
{
ActivePackageSourceSettings.Clear();
var valuePair = new KeyValuePair<string, string>(packageSource.Name, packageSource.Source);
ActivePackageSourceSettings.Add(valuePair);
}
public void MakeActivePackageSourceSectionNull()
{
Sections.Remove(RegisteredPackageSources.ActivePackageSourceSectionName);
Sections.Add(RegisteredPackageSources.ActivePackageSourceSectionName, null);
}
public void MakePackageSourceSectionsNull()
{
Sections.Remove(RegisteredPackageSources.PackageSourcesSectionName);
Sections.Add(RegisteredPackageSources.PackageSourcesSectionName, null);
}
}
}

32
src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementOptions.cs

@ -19,11 +19,18 @@ namespace ICSharpCode.PackageManagement @@ -19,11 +19,18 @@ namespace ICSharpCode.PackageManagement
RegisteredPackageSources packageSources;
Properties properties;
ISettings settings;
List<RecentPackageInfo> recentPackages;
public PackageManagementOptions(Properties properties)
public PackageManagementOptions(Properties properties, ISettings settings)
{
this.properties = properties;
this.settings = settings;
}
public PackageManagementOptions(Properties properties)
: this(properties, Settings.UserSettings)
{
}
public PackageManagementOptions()
@ -34,8 +41,7 @@ namespace ICSharpCode.PackageManagement @@ -34,8 +41,7 @@ namespace ICSharpCode.PackageManagement
public RegisteredPackageSources PackageSources {
get {
if (packageSources == null) {
packageSources = new RegisteredPackageSources(GetSavedPackageSources());
packageSources.CollectionChanged += PackageSourcesChanged;
packageSources = new RegisteredPackageSources(settings);
}
return packageSources;
}
@ -74,24 +80,8 @@ namespace ICSharpCode.PackageManagement @@ -74,24 +80,8 @@ namespace ICSharpCode.PackageManagement
}
public PackageSource ActivePackageSource {
get {
if (properties.Contains(ActivePackageSourcePropertyName)) {
var registeredPackageSource = properties.Get<RegisteredPackageSource>(ActivePackageSourcePropertyName, null);
var packageSource = registeredPackageSource.ToPackageSource();
if (PackageSources.Contains(packageSource)) {
return packageSource;
}
}
return null;
}
set {
if (value == null) {
properties.Remove(ActivePackageSourcePropertyName);
} else {
var packageSource = new RegisteredPackageSource(value);
properties.Set(ActivePackageSourcePropertyName, packageSource);
}
}
get { return PackageSources.ActivePackageSource; }
set { PackageSources.ActivePackageSource = value; }
}
public IList<RecentPackageInfo> RecentPackages {

124
src/AddIns/Misc/PackageManagement/Project/Src/RegisteredPackageSources.cs

@ -5,6 +5,7 @@ using System; @@ -5,6 +5,7 @@ using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Collections.Specialized;
using System.Linq;
using ICSharpCode.Core;
using NuGet;
@ -15,15 +16,61 @@ namespace ICSharpCode.PackageManagement @@ -15,15 +16,61 @@ namespace ICSharpCode.PackageManagement
public static readonly string DefaultPackageSourceUrl = "http://go.microsoft.com/fwlink/?LinkID=206669";
public static readonly string DefaultPackageSourceName = "NuGet Official Package Source";
public static readonly string PackageSourcesSectionName = "packageSources";
public static readonly string ActivePackageSourceSectionName = "activePackageSource";
public static readonly PackageSource DefaultPackageSource =
new PackageSource(DefaultPackageSourceUrl, DefaultPackageSourceName);
ISettings settings;
PackageSource activePackageSource;
public RegisteredPackageSources(IEnumerable<PackageSource> packageSources)
{
AddPackageSources(packageSources);
AddDefaultPackageSourceIfNoRegisteredPackageSources();
}
public RegisteredPackageSources(ISettings settings)
{
this.settings = settings;
AddPackageSources();
AddDefaultPackageSourceIfNoRegisteredPackageSources();
ReadActivePackageSource();
}
void AddPackageSources()
{
foreach (PackageSource source in GetPackageSourcesFromSettings()) {
Add(source);
}
}
IEnumerable<PackageSource> GetPackageSourcesFromSettings()
{
IList<KeyValuePair<string, string>> savedPackageSources = settings.GetValues(PackageSourcesSectionName);
if (HasAny(savedPackageSources)) {
foreach (KeyValuePair<string, string> packageSource in savedPackageSources) {
yield return CreatePackageSourceFromKeyValuePair(packageSource);
}
}
}
bool HasAny(IList<KeyValuePair<string, string>> packageSources)
{
if (packageSources != null) {
return packageSources.Any();
}
return false;
}
PackageSource CreatePackageSourceFromKeyValuePair(KeyValuePair<string, string> savedPackageSource)
{
string source = savedPackageSource.Value;
string name = savedPackageSource.Key;
return new PackageSource(source, name);
}
void AddPackageSources(IEnumerable<PackageSource> packageSources)
{
foreach (PackageSource source in packageSources) {
@ -45,5 +92,82 @@ namespace ICSharpCode.PackageManagement @@ -45,5 +92,82 @@ namespace ICSharpCode.PackageManagement
public bool HasMultiplePackageSources {
get { return Count > 1; }
}
void ReadActivePackageSource()
{
IList<KeyValuePair<string, string>> packageSources = settings.GetValues(ActivePackageSourceSectionName);
if (HasAny(packageSources)) {
activePackageSource = CreatePackageSourceFromKeyValuePair(packageSources[0]);
}
}
protected override void OnCollectionChanged(NotifyCollectionChangedEventArgs e)
{
base.OnCollectionChanged(e);
UpdatePackageSourceSettingsWithChanges();
}
void UpdatePackageSourceSettingsWithChanges()
{
if (settings != null) {
IList<KeyValuePair<string, string>> newPackageSourceSettings = GetSettingsFromPackageSources();
SavePackageSourceSettings(newPackageSourceSettings);
}
}
IList<KeyValuePair<string, string>> GetSettingsFromPackageSources()
{
var settings = new List<KeyValuePair<string, string>>();
foreach (PackageSource source in this) {
settings.Add(CreateKeyValuePairFromPackageSource(source));
}
return settings;
}
KeyValuePair<string, string> CreateKeyValuePairFromPackageSource(PackageSource source)
{
return new KeyValuePair<string, string>(source.Name, source.Source);
}
void SavePackageSourceSettings(IList<KeyValuePair<string, string>> newPackageSourceSettings)
{
settings.DeleteSection(PackageSourcesSectionName);
settings.SetValues(PackageSourcesSectionName, newPackageSourceSettings);
}
public PackageSource ActivePackageSource {
get {
if (Contains(activePackageSource)) {
return activePackageSource;
}
return null;
}
set {
activePackageSource = value;
if (activePackageSource == null) {
RemoveActivePackageSourceSetting();
} else {
UpdateActivePackageSourceSetting();
}
}
}
void RemoveActivePackageSourceSetting()
{
settings.DeleteSection(ActivePackageSourceSectionName);
}
void UpdateActivePackageSourceSetting()
{
RemoveActivePackageSourceSetting();
KeyValuePair<string, string> activePackageSourceSetting = CreateKeyValuePairFromPackageSource(activePackageSource);
SaveActivePackageSourceSetting(activePackageSourceSetting);
}
void SaveActivePackageSourceSetting(KeyValuePair<string, string> activePackageSource)
{
settings.SetValue(ActivePackageSourceSectionName, activePackageSource.Key, activePackageSource.Value);
}
}
}

2
src/AddIns/Misc/PackageManagement/Test/PackageManagement.Tests.csproj

@ -97,6 +97,7 @@ @@ -97,6 +97,7 @@
<Compile Include="Src\Helpers\RecentPackageInfoCollectionAssert.cs" />
<Compile Include="Src\Helpers\ReferenceAndProjectName.cs" />
<Compile Include="Src\Helpers\ReferenceProjectItemAssert.cs" />
<Compile Include="Src\Helpers\TestablePackageManagementOptions.cs" />
<Compile Include="Src\Helpers\TestablePackagesViewModel.cs" />
<Compile Include="Src\Helpers\TestablePackageViewModel.cs" />
<Compile Include="Src\Helpers\TestableProject.cs" />
@ -137,7 +138,6 @@ @@ -137,7 +138,6 @@
<Compile Include="Src\RecentPackageInfoTests.cs" />
<Compile Include="Src\RecentPackageRepositoryTests.cs" />
<Compile Include="Src\RecentPackagesViewModelTests.cs" />
<Compile Include="Src\RegisteredPackageSourcesTests.cs" />
<Compile Include="Src\SelectedListBoxItemScrollingBehaviourTests.cs" />
<Compile Include="Src\SharpDevelopPackageManagerFactoryTests.cs" />
<Compile Include="Src\SharpDevelopPackageManagerTests.cs" />

7
src/AddIns/Misc/PackageManagement/Test/Src/Helpers/OneRegisteredPackageSourceHelper.cs

@ -4,6 +4,7 @@ @@ -4,6 +4,7 @@
using System;
using ICSharpCode.Core;
using ICSharpCode.PackageManagement;
using ICSharpCode.PackageManagement.Design;
using NuGet;
namespace PackageManagement.Tests.Helpers
@ -11,7 +12,8 @@ namespace PackageManagement.Tests.Helpers @@ -11,7 +12,8 @@ namespace PackageManagement.Tests.Helpers
public class OneRegisteredPackageSourceHelper
{
public RegisteredPackageSources RegisteredPackageSources;
public PackageManagementOptions Options;
public TestablePackageManagementOptions Options;
public FakeSettings FakeSettings;
public PackageSource PackageSource = new PackageSource("http://sharpdevelop.com", "Test Package Source");
public OneRegisteredPackageSourceHelper()
@ -22,7 +24,8 @@ namespace PackageManagement.Tests.Helpers @@ -22,7 +24,8 @@ namespace PackageManagement.Tests.Helpers
void CreateOneRegisteredPackageSource()
{
Properties properties = new Properties();
Options = new PackageManagementOptions(properties);
Options = new TestablePackageManagementOptions();
FakeSettings = Options.FakeSettings;
RegisteredPackageSources = Options.PackageSources;
AddOnePackageSource();
}

28
src/AddIns/Misc/PackageManagement/Test/Src/Helpers/TestablePackageManagementOptions.cs

@ -0,0 +1,28 @@ @@ -0,0 +1,28 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using ICSharpCode.Core;
using ICSharpCode.PackageManagement;
using ICSharpCode.PackageManagement.Design;
namespace PackageManagement.Tests.Helpers
{
public class TestablePackageManagementOptions : PackageManagementOptions
{
public Properties Properties;
public FakeSettings FakeSettings;
public TestablePackageManagementOptions()
: this(new Properties(), new FakeSettings())
{
}
public TestablePackageManagementOptions(Properties properties, FakeSettings fakeSettings)
: base(properties, fakeSettings)
{
this.Properties = properties;
this.FakeSettings = fakeSettings;
}
}
}

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

@ -20,11 +20,13 @@ namespace PackageManagement.Tests @@ -20,11 +20,13 @@ namespace PackageManagement.Tests
{
Properties properties;
PackageManagementOptions options;
FakeSettings fakeSettings;
void CreateOptions()
{
CreateProperties();
CreateOptions(properties);
CreateSettings();
CreateOptions(properties, fakeSettings);
}
void CreateProperties()
@ -32,9 +34,26 @@ namespace PackageManagement.Tests @@ -32,9 +34,26 @@ namespace PackageManagement.Tests
properties = new Properties();
}
void CreateSettings()
{
fakeSettings = new FakeSettings();
}
void CreateOptions(Properties properties)
{
options = new PackageManagementOptions(properties);
CreateSettings();
CreateOptions(properties, fakeSettings);
}
void CreateOptions(FakeSettings fakeSettings)
{
CreateProperties();
options = new PackageManagementOptions(properties, fakeSettings);
}
void CreateOptions(Properties properties, FakeSettings fakeSettings)
{
options = new PackageManagementOptions(properties, fakeSettings);
}
void SaveOptions()
@ -46,6 +65,82 @@ namespace PackageManagement.Tests @@ -46,6 +65,82 @@ namespace PackageManagement.Tests
}
}
[Test]
public void PackageSources_OnePackageSourceInSettings_ContainsSinglePackageSourceFromSettings()
{
CreateSettings();
var packageSource = new PackageSource("http://codeplex.com", "Test");
fakeSettings.AddFakePackageSource(packageSource);
CreateOptions(fakeSettings);
var actualSources = options.PackageSources;
List<PackageSource> expectedSources = new List<PackageSource>();
expectedSources.Add(packageSource);
Assert.AreEqual(expectedSources, actualSources);
}
[Test]
public void PackageSources_NoPackageSourceInSavedSettings_ContainsDefaultPackageSource()
{
CreateSettings();
CreateOptions(fakeSettings);
List<PackageSource> expectedSources = new List<PackageSource>();
expectedSources.Add(RegisteredPackageSources.DefaultPackageSource);
var actualPackageSources = options.PackageSources;
CollectionAssert.AreEqual(expectedSources, actualPackageSources);
}
[Test]
public void PackageSources_OnePackageSourceAdded_PackageSourceSavedInSettings()
{
CreateSettings();
CreateOptions(fakeSettings);
var registeredPackageSources = options.PackageSources;
var packageSource = new PackageSource("http://codeplex.com", "Test");
registeredPackageSources.Clear();
registeredPackageSources.Add(packageSource);
var expectedSavedPackageSourceSettings = new List<KeyValuePair<string, string>>();
expectedSavedPackageSourceSettings.Add(new KeyValuePair<string, string>("Test", "http://codeplex.com"));
var actualSavedPackageSourceSettings = fakeSettings.GetValuesPassedToSetValuesForPackageSourcesSection();
Assert.AreEqual(expectedSavedPackageSourceSettings, actualSavedPackageSourceSettings);
}
[Test]
public void PackageSources_OnePackageSourceAdded_PackageSourcesSectionDeletedFromSettings()
{
CreateSettings();
CreateOptions(fakeSettings);
var registeredPackageSources = options.PackageSources;
var packageSource = new PackageSource("http://codeplex.com", "Test");
registeredPackageSources.Clear();
registeredPackageSources.Add(packageSource);
bool sectionDeleted = fakeSettings.IsPackageSourcesSectionDeleted;
Assert.IsTrue(sectionDeleted);
}
[Test]
public void PackageSources_SettingsFilesDoesNotExistSoSettingsReturnsNullForPackageSourcesSection_DoesNotThrowException()
{
CreateSettings();
fakeSettings.MakePackageSourceSectionsNull();
CreateOptions(fakeSettings);
RegisteredPackageSources packageSources = null;
Assert.DoesNotThrow(() => packageSources = options.PackageSources);
}
[Test]
public void ActivePackageSource_NoInitialPropertiesSet_ReturnsNull()
{
@ -55,15 +150,30 @@ namespace PackageManagement.Tests @@ -55,15 +150,30 @@ namespace PackageManagement.Tests
}
[Test]
public void ActivePackageSource_ActivePackageSourceNonNullWhenPropertiesSaved_OnReloadingPropertiesActivatePackageSourceRemembered()
public void ActivePackageSource_SourceChanged_ActivePackageSourceUpdatedInSettings()
{
CreateOptions();
var packageSource = new PackageSource("http://sharpdevelop.com", "Test");
options.ActivePackageSource = packageSource;
var expectedKeyValuePair = new KeyValuePair<string, string>("Test", "http://sharpdevelop.com");
var actualKeyValuePair = fakeSettings.GetValuePassedToSetValueForActivePackageSourceSection();
Assert.AreEqual(expectedKeyValuePair, actualKeyValuePair);
}
[Test]
public void ActivePackageSource_ActivePackageSourceNonNullInSettings_ReturnsActivatePackageSourceInSavedSettings()
{
CreateSettings();
var expectedSource = new PackageSource("http://source-url", "Test");
options.PackageSources.Add(expectedSource);
options.ActivePackageSource = expectedSource;
CreateOptions(properties);
fakeSettings.SetFakeActivePackageSource(expectedSource);
fakeSettings.AddFakePackageSource(expectedSource);
CreateOptions(fakeSettings);
PackageSource actualSource = options.ActivePackageSource;
Assert.AreEqual(expectedSource, actualSource);
}
@ -81,38 +191,57 @@ namespace PackageManagement.Tests @@ -81,38 +191,57 @@ namespace PackageManagement.Tests
}
[Test]
public void ActivePackageSource_SaveActivePackageSource_DoesNotThrowSerializationError()
public void ActivePackageSource_ActivePackageSourceRemovedFromPackageSources_ActivePackageSourceSetToNull()
{
CreateOptions();
var source = new PackageSource("http://source-url", "Test");
options.ActivePackageSource = source;
options.PackageSources.Add(source);
Assert.DoesNotThrow(() => SaveOptions());
var differentSource = new PackageSource("http://different-url", "Test2");
options.ActivePackageSource = differentSource;
var activeSource = options.ActivePackageSource;
Assert.IsNull(activeSource);
}
[Test]
public void ActivePackageSource_SaveDefaultNullActivePackageSource_DoesNotThrowSerializationError()
public void ActivePackageSource_ActivePackageSourceChanged_ActivePackageSourceSectionRemovedFromSettings()
{
CreateOptions();
var source = options.ActivePackageSource;
Assert.DoesNotThrow(() => SaveOptions());
Assert.IsNull(source);
options.ActivePackageSource = new PackageSource("http://sharpdevelop.com", "Test");
bool sectionDeleted = fakeSettings.IsActivePackageSourceSectionDeleted;
Assert.IsTrue(sectionDeleted);
}
[Test]
public void ActivePackageSource_ActivePackageSourceRemovedFromPackageSources_ActivePackageSourceSetToNull()
public void ActivePackageSource_OneActivePackageSourceInSettingsAndActivePackageSourceSetToNull_ActivePackageSourceSectionRemoved()
{
CreateOptions();
var source = new PackageSource("http://source-url", "Test");
options.PackageSources.Add(source);
CreateSettings();
var expectedSource = new PackageSource("http://source-url", "Test");
fakeSettings.SetFakeActivePackageSource(expectedSource);
fakeSettings.AddFakePackageSource(expectedSource);
CreateOptions(fakeSettings);
var differentSource = new PackageSource("http://different-url", "Test2");
options.ActivePackageSource = differentSource;
options.ActivePackageSource = null;
var activeSource = options.ActivePackageSource;
bool sectionRemoved = fakeSettings.IsActivePackageSourceSectionDeleted;
Assert.IsNull(activeSource);
Assert.IsTrue(sectionRemoved);
}
[Test]
public void ActivePackageSource_SettingsFilesDoesNotExistSoSettingsReturnsNullForActivePackageSourceSection_DoesNotThrowException()
{
CreateSettings();
fakeSettings.MakeActivePackageSourceSectionNull();
CreateOptions(fakeSettings);
PackageSource activePackageSource = null;
Assert.DoesNotThrow(() => activePackageSource = options.ActivePackageSource);
}
[Test]

2
src/AddIns/Misc/PackageManagement/Test/Src/PackageRepositoryPathsTests.cs

@ -29,7 +29,7 @@ namespace PackageManagement.Tests @@ -29,7 +29,7 @@ namespace PackageManagement.Tests
void CreatePackageManagementOptions()
{
options = new PackageManagementOptions(new Properties());
options = new TestablePackageManagementOptions();
}
[Test]

66
src/AddIns/Misc/PackageManagement/Test/Src/RegisteredPackageSourcesTests.cs

@ -1,66 +0,0 @@ @@ -1,66 +0,0 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Collections.Generic;
using ICSharpCode.PackageManagement;
using ICSharpCode.Core;
using NuGet;
using NUnit.Framework;
namespace PackageManagement.Tests
{
[TestFixture]
public class RegisteredPackageSourcesTests
{
RegisteredPackageSources registeredPackageSources;
PackageManagementOptions options;
Properties properties;
void CreateProperties()
{
properties = new Properties();
}
void CreateRegisteredPackageSources()
{
CreateProperties();
CreateRegisteredPackageSources(properties);
}
void CreateRegisteredPackageSources(Properties properties)
{
options = new PackageManagementOptions(properties);
registeredPackageSources = options.PackageSources;
}
[Test]
public void Constructor_NoExistingSavedProperties_NewInstanceContainsDefaultPackageSource()
{
CreateRegisteredPackageSources();
List<PackageSource> expectedSources = new List<PackageSource>();
expectedSources.Add(RegisteredPackageSources.DefaultPackageSource);
CollectionAssert.AreEqual(expectedSources, registeredPackageSources);
}
[Test]
public void Constructor_OnePackageSourceInSavedProperties_NewInstanceContainsSinglePackageSourceFromProperties()
{
CreateProperties();
CreateRegisteredPackageSources(properties);
var packageSource = new PackageSource("http://codeplex.com", "Test");
registeredPackageSources.Clear();
registeredPackageSources.Add(packageSource);
CreateRegisteredPackageSources(properties);
List<PackageSource> expectedSources = new List<PackageSource>();
expectedSources.Add(packageSource);
Assert.AreEqual(expectedSources, registeredPackageSources);
}
}
}

2
src/AddIns/Misc/PackageManagement/Test/Src/RegisteredPackageSourcesViewModelTests.cs

@ -21,7 +21,7 @@ namespace PackageManagement.Tests @@ -21,7 +21,7 @@ namespace PackageManagement.Tests
void CreateViewModel()
{
options = new PackageManagementOptions(new Properties());
options = new TestablePackageManagementOptions();
options.PackageSources.Clear();
fakeFolderBrowser = new FakeFolderBrowser();
viewModel = new RegisteredPackageSourcesViewModel(options, fakeFolderBrowser);

2
src/AddIns/Misc/PackageManagement/Test/Src/SharpDevelopPackageManagerFactoryTests.cs

@ -25,7 +25,7 @@ namespace PackageManagement.Tests @@ -25,7 +25,7 @@ namespace PackageManagement.Tests
void CreateFactory()
{
options = new PackageManagementOptions(new Properties());
options = new TestablePackageManagementOptions();
fakePackageRepositoryFactory = new FakePackageRepositoryFactory();
fakeProjectSystemFactory = new FakeProjectSystemFactory();
factory = new SharpDevelopPackageManagerFactory(fakePackageRepositoryFactory, fakeProjectSystemFactory, options);

2
src/AddIns/Misc/PackageManagement/Test/Src/SharpDevelopPackageManagerTests.cs

@ -28,7 +28,7 @@ namespace PackageManagement.Tests @@ -28,7 +28,7 @@ namespace PackageManagement.Tests
void CreatePackageManager(IProject project, PackageReferenceRepositoryHelper packageRefRepositoryHelper)
{
options = new PackageManagementOptions(new Properties());
options = new TestablePackageManagementOptions();
options.PackagesDirectory = "packages";
repositoryPaths = new PackageRepositoryPaths(project, options);

Loading…
Cancel
Save