You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
458 lines
15 KiB
458 lines
15 KiB
//// 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 System.IO; |
|
//using System.Text; |
|
//using System.Xml; |
|
//using ICSharpCode.Core; |
|
//using ICSharpCode.PackageManagement; |
|
//using ICSharpCode.PackageManagement.Design; |
|
//using NuGet; |
|
//using NUnit.Framework; |
|
//using PackageManagement.Tests.Helpers; |
|
// |
|
//namespace PackageManagement.Tests |
|
//{ |
|
// [TestFixture] |
|
// public class PackageManagementOptionsTests |
|
// { |
|
// Properties properties; |
|
// PackageManagementOptions options; |
|
// FakeSettings fakeSettings; |
|
// |
|
// void CreateOptions() |
|
// { |
|
// CreateProperties(); |
|
// CreateSettings(); |
|
// CreateOptions(properties, fakeSettings); |
|
// } |
|
// |
|
// void CreateProperties() |
|
// { |
|
// properties = new Properties(); |
|
// } |
|
// |
|
// void CreateSettings() |
|
// { |
|
// fakeSettings = new FakeSettings(); |
|
// } |
|
// |
|
// void CreateOptions(Properties 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() |
|
// { |
|
// StringBuilder xml = new StringBuilder(); |
|
// StringWriter stringWriter = new StringWriter(xml); |
|
// using (XmlTextWriter writer = new XmlTextWriter(stringWriter)) { |
|
// properties.WriteProperties(writer); |
|
// } |
|
// } |
|
// |
|
// RecentPackageInfo AddRecentPackageToOptions(string id, string version) |
|
// { |
|
// var recentPackage = new RecentPackageInfo(id, new SemanticVersion(version)); |
|
// options.RecentPackages.Add(recentPackage); |
|
// return recentPackage; |
|
// } |
|
// |
|
// void EnablePackageRestoreInSettings() |
|
// { |
|
// fakeSettings.SetPackageRestoreSetting(true); |
|
// } |
|
// |
|
// [Test] |
|
// public void PackageSources_OnePackageSourceInSettings_ContainsSinglePackageSourceFromSettings() |
|
// { |
|
// CreateSettings(); |
|
// var packageSource = new PackageSource("http://codeplex.com", "Test"); |
|
// fakeSettings.AddFakePackageSource(packageSource); |
|
// CreateOptions(fakeSettings); |
|
// |
|
// RegisteredPackageSources 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); |
|
// |
|
// RegisteredPackageSources actualPackageSources = options.PackageSources; |
|
// |
|
// CollectionAssert.AreEqual(expectedSources, actualPackageSources); |
|
// } |
|
// |
|
// [Test] |
|
// public void PackageSources_NoPackageSourceInSavedSettings_DefaultPackageSourceAddedToSettings() |
|
// { |
|
// CreateSettings(); |
|
// CreateOptions(fakeSettings); |
|
// |
|
// RegisteredPackageSources packageSources = options.PackageSources; |
|
// |
|
// PackageSource defaultSource = RegisteredPackageSources.DefaultPackageSource; |
|
// |
|
// var expectedSavedPackageSourceSettings = new List<KeyValuePair<string, string>>(); |
|
// string name = defaultSource.Name; |
|
// string sourceUrl = defaultSource.Source; |
|
// expectedSavedPackageSourceSettings.Add(new KeyValuePair<string, string>(name, sourceUrl)); |
|
// |
|
// IList<KeyValuePair<string, string>> actualSavedPackageSourceSettings = fakeSettings.GetValuesPassedToSetValuesForPackageSourcesSection(); |
|
// |
|
// Assert.AreEqual(expectedSavedPackageSourceSettings, actualSavedPackageSourceSettings); |
|
// } |
|
// |
|
// [Test] |
|
// public void PackageSources_OnePackageSourceAdded_PackageSourceSavedInSettings() |
|
// { |
|
// CreateSettings(); |
|
// CreateOptions(fakeSettings); |
|
// RegisteredPackageSources 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")); |
|
// |
|
// IList<KeyValuePair<string, string>> actualSavedPackageSourceSettings = fakeSettings.GetValuesPassedToSetValuesForPackageSourcesSection(); |
|
// |
|
// Assert.AreEqual(expectedSavedPackageSourceSettings, actualSavedPackageSourceSettings); |
|
// } |
|
// |
|
// [Test] |
|
// public void PackageSources_OnePackageSourceAdded_PackageSourcesSectionDeletedFromSettings() |
|
// { |
|
// CreateSettings(); |
|
// CreateOptions(fakeSettings); |
|
// RegisteredPackageSources 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() |
|
// { |
|
// CreateOptions(); |
|
// PackageSource actualSource = options.ActivePackageSource; |
|
// Assert.IsNull(options.ActivePackageSource); |
|
// } |
|
// |
|
// [Test] |
|
// 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"); |
|
// KeyValuePair<string, string> actualKeyValuePair = fakeSettings.GetValuePassedToSetValueForActivePackageSourceSection(); |
|
// |
|
// Assert.AreEqual(expectedKeyValuePair, actualKeyValuePair); |
|
// } |
|
// |
|
// [Test] |
|
// public void ActivePackageSource_ActivePackageSourceNonNullInSettings_ReturnsActivatePackageSourceInSavedSettings() |
|
// { |
|
// CreateSettings(); |
|
// var expectedSource = new PackageSource("http://source-url", "Test"); |
|
// fakeSettings.SetFakeActivePackageSource(expectedSource); |
|
// fakeSettings.AddFakePackageSource(expectedSource); |
|
// CreateOptions(fakeSettings); |
|
// |
|
// PackageSource actualSource = options.ActivePackageSource; |
|
// |
|
// Assert.AreEqual(expectedSource, actualSource); |
|
// } |
|
// |
|
// [Test] |
|
// public void ActivePackageSource_SetToNullAfterHavingNonNullValue_ReturnsNull() |
|
// { |
|
// CreateOptions(); |
|
// var source = new PackageSource("http://source-url", "Test"); |
|
// options.ActivePackageSource = source; |
|
// |
|
// options.ActivePackageSource = null; |
|
// |
|
// PackageSource actualSource = options.ActivePackageSource; |
|
// Assert.IsNull(actualSource); |
|
// } |
|
// |
|
// [Test] |
|
// public void ActivePackageSource_ActivePackageSourceRemovedFromPackageSources_ActivePackageSourceSetToNull() |
|
// { |
|
// CreateOptions(); |
|
// var source = new PackageSource("http://source-url", "Test"); |
|
// options.PackageSources.Add(source); |
|
// |
|
// var differentSource = new PackageSource("http://different-url", "Test2"); |
|
// options.ActivePackageSource = differentSource; |
|
// |
|
// PackageSource activeSource = options.ActivePackageSource; |
|
// |
|
// Assert.IsNull(activeSource); |
|
// } |
|
// |
|
// [Test] |
|
// public void ActivePackageSource_ActivePackageSourceChanged_ActivePackageSourceSectionRemovedFromSettings() |
|
// { |
|
// CreateOptions(); |
|
// |
|
// options.ActivePackageSource = new PackageSource("http://sharpdevelop.com", "Test"); |
|
// |
|
// bool sectionDeleted = fakeSettings.IsActivePackageSourceSectionDeleted; |
|
// |
|
// Assert.IsTrue(sectionDeleted); |
|
// } |
|
// |
|
// [Test] |
|
// public void ActivePackageSource_OneActivePackageSourceInSettingsAndActivePackageSourceSetToNull_ActivePackageSourceSectionRemoved() |
|
// { |
|
// CreateSettings(); |
|
// var expectedSource = new PackageSource("http://source-url", "Test"); |
|
// fakeSettings.SetFakeActivePackageSource(expectedSource); |
|
// fakeSettings.AddFakePackageSource(expectedSource); |
|
// CreateOptions(fakeSettings); |
|
// |
|
// options.ActivePackageSource = null; |
|
// |
|
// bool sectionRemoved = fakeSettings.IsActivePackageSourceSectionDeleted; |
|
// |
|
// Assert.IsTrue(sectionRemoved); |
|
// } |
|
// |
|
// [Test] |
|
// public void ActivePackageSource_SettingsFilesDoesNotExistSoSettingsReturnsNullForActivePackageSourceSection_DoesNotThrowException() |
|
// { |
|
// CreateSettings(); |
|
// fakeSettings.MakeActivePackageSourceSectionNull(); |
|
// CreateOptions(fakeSettings); |
|
// |
|
// PackageSource activePackageSource = null; |
|
// Assert.DoesNotThrow(() => activePackageSource = options.ActivePackageSource); |
|
// } |
|
// |
|
// [Test] |
|
// public void RecentPackages_OneRecentPackageAddedAndOptionsReloadedFromSavedProperties_ContainsOneRecentPackageThatWasSavedPreviously() |
|
// { |
|
// CreateOptions(); |
|
// var package = new FakePackage("Test"); |
|
// var recentPackage = new RecentPackageInfo(package); |
|
// options.RecentPackages.Add(recentPackage); |
|
// CreateOptions(properties); |
|
// |
|
// IList<RecentPackageInfo> recentPackages = options.RecentPackages; |
|
// |
|
// var expectedRecentPackages = new RecentPackageInfo[] { |
|
// new RecentPackageInfo(package) |
|
// }; |
|
// |
|
// RecentPackageInfoCollectionAssert.AreEqual(expectedRecentPackages, recentPackages); |
|
// } |
|
// |
|
// [Test] |
|
// public void RecentPackages_SaveRecentPackages_DoesNotThrowInvalidOperationException() |
|
// { |
|
// CreateOptions(); |
|
// RecentPackageInfo recentPackage = AddRecentPackageToOptions("id", "1.0"); |
|
// |
|
// Assert.DoesNotThrow(() => SaveOptions()); |
|
// } |
|
// |
|
// [Test] |
|
// public void ActivePackageSource_AggregatePackageSourceIsActivePackageSourceInSettings_ReturnsAggregatePackageSource() |
|
// { |
|
// CreateSettings(); |
|
// PackageSource expectedPackageSource = RegisteredPackageSourceSettings.AggregatePackageSource; |
|
// fakeSettings.SetFakeActivePackageSource(expectedPackageSource); |
|
// CreateOptions(fakeSettings); |
|
// |
|
// PackageSource activePackageSource = options.ActivePackageSource; |
|
// |
|
// Assert.AreEqual(expectedPackageSource, activePackageSource); |
|
// } |
|
// |
|
// [Test] |
|
// public void PackageSources_OneEnabledPackageSourceInSettings_ContainsSingleEnabledPackageSourceFromSettings() |
|
// { |
|
// CreateSettings(); |
|
// var packageSource = new PackageSource("http://codeplex.com", "Test") { IsEnabled = true }; |
|
// fakeSettings.AddFakePackageSource(packageSource); |
|
// CreateOptions(fakeSettings); |
|
// |
|
// RegisteredPackageSources actualSources = options.PackageSources; |
|
// |
|
// Assert.IsTrue(actualSources[0].IsEnabled); |
|
// } |
|
// |
|
// [Test] |
|
// public void PackageSources_OneDisabledPackageSourceInSettings_ContainsSingleDisabledPackageSourceFromSettings() |
|
// { |
|
// CreateSettings(); |
|
// var packageSource = new PackageSource("http://codeplex.com", "Test") { IsEnabled = false }; |
|
// fakeSettings.AddFakePackageSource(packageSource); |
|
// fakeSettings.AddDisabledPackageSource(packageSource); |
|
// CreateOptions(fakeSettings); |
|
// |
|
// RegisteredPackageSources actualSources = options.PackageSources; |
|
// |
|
// Assert.IsFalse(actualSources[0].IsEnabled); |
|
// } |
|
// |
|
// [Test] |
|
// public void PackageSources_OnePackageSourceAdded_DisabledPackageSourcesSectionDeletedFromSettings() |
|
// { |
|
// CreateSettings(); |
|
// CreateOptions(fakeSettings); |
|
// RegisteredPackageSources registeredPackageSources = options.PackageSources; |
|
// |
|
// var packageSource = new PackageSource("http://codeplex.com", "Test"); |
|
// registeredPackageSources.Clear(); |
|
// registeredPackageSources.Add(packageSource); |
|
// |
|
// bool sectionDeleted = fakeSettings.IsDisabledPackageSourcesSectionDeleted; |
|
// |
|
// Assert.IsTrue(sectionDeleted); |
|
// } |
|
// |
|
// [Test] |
|
// public void PackageSources_OneDisabledPackageSourceAdded_DisabledPackageSourcesSectionSaved() |
|
// { |
|
// CreateSettings(); |
|
// CreateOptions(fakeSettings); |
|
// RegisteredPackageSources registeredPackageSources = options.PackageSources; |
|
// |
|
// var packageSource = new PackageSource("http://codeplex.com", "Test") { IsEnabled = false }; |
|
// registeredPackageSources.Clear(); |
|
// registeredPackageSources.Add(packageSource); |
|
// |
|
// var expectedSavedPackageSourceSettings = new List<KeyValuePair<string, string>>(); |
|
// expectedSavedPackageSourceSettings.Add(new KeyValuePair<string, string>(packageSource.Name, "true")); |
|
// |
|
// IList<KeyValuePair<string, string>> actualSavedPackageSourceSettings = |
|
// fakeSettings.GetValuesPassedToSetValuesForDisabledPackageSourcesSection(); |
|
// Assert.AreEqual(expectedSavedPackageSourceSettings, actualSavedPackageSourceSettings); |
|
// } |
|
// |
|
// [Test] |
|
// public void PackageSources_OneEnabledPackageSourceAdded_DisabledPackageSourcesSectionNotChanged() |
|
// { |
|
// CreateSettings(); |
|
// CreateOptions(fakeSettings); |
|
// RegisteredPackageSources registeredPackageSources = options.PackageSources; |
|
// |
|
// var packageSource = new PackageSource("http://codeplex.com", "Test") { IsEnabled = true }; |
|
// registeredPackageSources.Clear(); |
|
// registeredPackageSources.Add(packageSource); |
|
// |
|
// bool result = fakeSettings.AnyValuesPassedToSetValuesForDisabledPackageSourcesSection; |
|
// |
|
// Assert.IsFalse(result); |
|
// } |
|
// |
|
// [Test] |
|
// public void IsPackageRestoreEnabled_EnabledInSettings_ReturnsTrue() |
|
// { |
|
// CreateSettings(); |
|
// EnablePackageRestoreInSettings(); |
|
// CreateOptions(fakeSettings); |
|
// |
|
// bool enabled = options.IsPackageRestoreEnabled; |
|
// |
|
// Assert.IsTrue(enabled); |
|
// } |
|
// |
|
// [Test] |
|
// public void IsPackageRestoreEnabled_PackageRestoreNotInSettings_ReturnsTrue() |
|
// { |
|
// CreateOptions(); |
|
// |
|
// bool enabled = options.IsPackageRestoreEnabled; |
|
// |
|
// Assert.IsTrue(enabled); |
|
// } |
|
// |
|
// [Test] |
|
// public void IsPackageRestoreEnabled_NotInSettingsOriginallyButSetToTrue_PackageRestoreEnabledInSettings() |
|
// { |
|
// CreateOptions(); |
|
// |
|
// options.IsPackageRestoreEnabled = true; |
|
// |
|
// KeyValuePair<string, string> keyPair = fakeSettings.GetValuePassedToSetValueForPackageRestoreSection(); |
|
// |
|
// Assert.AreEqual("enabled", keyPair.Key); |
|
// Assert.AreEqual("True", keyPair.Value); |
|
// } |
|
// |
|
// [Test] |
|
// public void IsPackageRestoreEnabled_OriginallyEnabledInSettingsButSetToTrue_PackageRestoreSectionIsNotDeletedFromSettings() |
|
// { |
|
// CreateSettings(); |
|
// EnablePackageRestoreInSettings(); |
|
// CreateOptions(fakeSettings); |
|
// |
|
// options.IsPackageRestoreEnabled = false; |
|
// |
|
// bool deleted = fakeSettings.IsPackageRestoreSectionDeleted; |
|
// Assert.IsFalse(deleted); |
|
// } |
|
// |
|
// [Test] |
|
// public void IsPackageRestoreEnabled_OriginallyEnabledInSettingsButSetToTrue_PackageRestoreIsFalseInSettings() |
|
// { |
|
// CreateSettings(); |
|
// EnablePackageRestoreInSettings(); |
|
// CreateOptions(fakeSettings); |
|
// |
|
// options.IsPackageRestoreEnabled = false; |
|
// |
|
// KeyValuePair<string, string> keyValuePair = fakeSettings.GetValuePassedToSetValueForPackageRestoreSection(); |
|
// Assert.AreEqual("False", keyValuePair.Value); |
|
// } |
|
// } |
|
//}
|
|
|