public void SavePackageSourcesWillSaveTheWindows8ExpressFeedWhenNotRunningWindows8Express() { // Arrange var userSettings = new Mock <ISettings>(); var packageSourceProvider = new Mock <IPackageSourceProvider>(); var vsShellInfo = new Mock <IVsShellInfo>(); vsShellInfo.Setup(_ => _.IsVisualStudioExpressForWindows8).Returns(false); var provider = new VsPackageSourceProvider(userSettings.Object, packageSourceProvider.Object, vsShellInfo.Object); IList <PackageSource> savedSources = null; packageSourceProvider.Setup(_ => _.SavePackageSources(It.IsAny <IEnumerable <PackageSource> >())) .Callback((IEnumerable <PackageSource> _) => savedSources = _.ToList()) .Verifiable(); // Act provider.SavePackageSources(new[] { new PackageSource("theFirstSource", "theFirstFeed"), new PackageSource(NuGetOfficialFeedUrl + "curated-feeds/windows8-packages/", "Windows 8 Packages") { IsOfficial = true }, new PackageSource("theThirdSource", "theThirdFeed"), }); // Assert Assert.NotNull(savedSources); Assert.Equal(3, savedSources.Count); AssertPackageSource(savedSources[0], "theFirstFeed", "theFirstSource"); AssertPackageSource(savedSources[1], "Windows 8 Packages", NuGetOfficialFeedUrl + "curated-feeds/windows8-packages/"); AssertPackageSource(savedSources[2], "theThirdFeed", "theThirdSource"); }
public void TheDisabledStateOfWindows8FeedIsPersistedWhenRunningOnWindows8Express() { // Arrange var userSettings = new Mock <ISettings>(); var packageSourceProvider = new Mock <IPackageSourceProvider>(); var vsShellInfo = new Mock <IVsShellInfo>(); vsShellInfo.Setup(_ => _.IsVisualStudioExpressForWindows8).Returns(true); var provider = new VsPackageSourceProvider(userSettings.Object, packageSourceProvider.Object, vsShellInfo.Object); packageSourceProvider.Setup(p => p.DisablePackageSource(It.IsAny <PackageSource>())).Callback <PackageSource>( ps => AssertPackageSource(ps, "Windows 8 Packages", NuGetConstants.VSExpressForWindows8FeedUrl)); // Act var packageSources = new PackageSource[] { new PackageSource(NuGetConstants.VSExpressForWindows8FeedUrl, "Windows 8 packages", isEnabled: false, isOfficial: true), new PackageSource("theFirstSource", "theFirstFeed", isEnabled: true) }; provider.SavePackageSources(packageSources); // Assert packageSourceProvider.Verify(p => p.DisablePackageSource(It.IsAny <PackageSource>()), Times.Once()); }
public void TheDisabledStateOfWindows8FeedIsPersistedWhenRunningOnWindows8Express() { // Arrange var mockFileSystem = new MockFileSystem(); var settings = Settings.LoadDefaultSettings( mockFileSystem, configFileName: null, machineWideSettings: null); var packageSourceProvider = new PackageSourceProvider(settings); var vsShellInfo = new Mock <IVsShellInfo>(); vsShellInfo.Setup(_ => _.IsVisualStudioExpressForWindows8).Returns(true); var provider = new VsPackageSourceProvider(settings, packageSourceProvider, vsShellInfo.Object); var packageSources = provider.LoadPackageSources().ToList(); Assert.Equal(1, packageSources.Count); Assert.Equal(NuGetConstants.VSExpressForWindows8FeedUrl, packageSources[0].Source); Assert.True(packageSources[0].IsEnabled); // Act packageSources[0].IsEnabled = false; provider.SavePackageSources(packageSources); // Assert // the Win8ExpressFeed is not saved in <disabledPackageSources>. Assert.Equal(1, mockFileSystem.Paths.Count); var configFile = mockFileSystem.Paths.First().Key; var configFileContent = mockFileSystem.ReadAllText(configFile); Assert.Equal( @"<?xml version=""1.0"" encoding=""utf-8""?> <configuration> <packageSources /> <disabledPackageSources> <add key=""Windows 8 Packages"" value=""true"" /> </disabledPackageSources> </configuration>".Replace("\r", ""), configFileContent.Replace("\r", "")); }
public void SavePackageSourcesWillNotSaveTheWindows8ExpressFeedWhenRunningWindows8Express() { // Arrange var mockFileSystem = new MockFileSystem(); var settings = Settings.LoadDefaultSettings( mockFileSystem, configFileName: null, machineWideSettings: null); var packageSourceProvider = new PackageSourceProvider(settings); var vsShellInfo = new Mock <IVsShellInfo>(); vsShellInfo.Setup(_ => _.IsVisualStudioExpressForWindows8).Returns(true); var provider = new VsPackageSourceProvider(settings, packageSourceProvider, vsShellInfo.Object); var packageSources = provider.LoadPackageSources().ToList(); Assert.Equal(1, packageSources.Count); Assert.Equal(NuGetConstants.VSExpressForWindows8FeedUrl, packageSources[0].Source); Assert.True(packageSources[0].IsEnabled); // Act provider.SavePackageSources(packageSources); // Assert // the Win8ExpressFeed is saved as active source, but not saved // in <packageSources>. Assert.Equal(1, mockFileSystem.Paths.Count); var configFile = mockFileSystem.Paths.First().Key; var configFileContent = mockFileSystem.ReadAllText(configFile); Assert.Equal( @"<?xml version=""1.0"" encoding=""utf-8""?> <configuration> <activePackageSource> <add key=""Windows 8 Packages"" value=""https://www.nuget.org/api/v2/curated-feeds/windows8-packages/"" /> </activePackageSource> </configuration>".Replace("\r", ""), configFileContent.Replace("\r", "")); }
public void SavePackageSourcesWillNotSaveTheWindows8ExpressFeedWhenRunningWindows8Express() { // Arrange var mockFileSystem = new MockFileSystem(); var settings = Settings.LoadDefaultSettings( mockFileSystem, configFileName: null, machineWideSettings: null); var packageSourceProvider = new PackageSourceProvider(settings); var vsShellInfo = new Mock<IVsShellInfo>(); vsShellInfo.Setup(_ => _.IsVisualStudioExpressForWindows8).Returns(true); var provider = new VsPackageSourceProvider(settings, packageSourceProvider, vsShellInfo.Object); var packageSources = provider.LoadPackageSources().ToList(); Assert.Equal(1, packageSources.Count); Assert.Equal(NuGetConstants.VSExpressForWindows8FeedUrl, packageSources[0].Source); Assert.True(packageSources[0].IsEnabled); // Act provider.SavePackageSources(packageSources); // Assert // the Win8ExpressFeed is saved as active source, but not saved // in <packageSources>. Assert.Equal(1, mockFileSystem.Paths.Count); var configFile = mockFileSystem.Paths.First().Key; var configFileContent = mockFileSystem.ReadAllText(configFile); Assert.Equal( @"<?xml version=""1.0"" encoding=""utf-8""?> <configuration> <activePackageSource> <add key=""Windows 8 Packages"" value=""https://www.nuget.org/api/v2/curated-feeds/windows8-packages/"" /> </activePackageSource> </configuration>".Replace("\r", ""), configFileContent.Replace("\r", "")); }
public void TheEnabledStateOfWindows8FeedIsNotPersistedWhenRunningOnWindows8Express() { // Arrange var userSettings = new Mock<ISettings>(); var packageSourceProvider = new Mock<IPackageSourceProvider>(); var vsShellInfo = new Mock<IVsShellInfo>(); vsShellInfo.Setup(_ => _.IsVisualStudioExpressForWindows8).Returns(true); var provider = new VsPackageSourceProvider(userSettings.Object, packageSourceProvider.Object, vsShellInfo.Object); // Act var packageSources = new PackageSource[] { new PackageSource(NuGetConstants.VSExpressForWindows8FeedUrl, "Windows 8 packages", isEnabled: true, isOfficial: true) }; provider.SavePackageSources(packageSources); // Assert packageSourceProvider.Verify(p => p.DisablePackageSource(It.IsAny<PackageSource>()), Times.Never()); }
public void TheDisabledStateOfWindows8FeedIsPersistedWhenRunningOnWindows8Express() { // Arrange var mockFileSystem = new MockFileSystem(); var settings = Settings.LoadDefaultSettings( mockFileSystem, configFileName: null, machineWideSettings: null); var packageSourceProvider = new PackageSourceProvider(settings); var vsShellInfo = new Mock<IVsShellInfo>(); vsShellInfo.Setup(_ => _.IsVisualStudioExpressForWindows8).Returns(true); var provider = new VsPackageSourceProvider(settings, packageSourceProvider, vsShellInfo.Object); var packageSources = provider.LoadPackageSources().ToList(); Assert.Equal(1, packageSources.Count); Assert.Equal(NuGetConstants.VSExpressForWindows8FeedUrl, packageSources[0].Source); Assert.True(packageSources[0].IsEnabled); // Act packageSources[0].IsEnabled = false; provider.SavePackageSources(packageSources); // Assert // the Win8ExpressFeed is not saved in <disabledPackageSources>. Assert.Equal(1, mockFileSystem.Paths.Count); var configFile = mockFileSystem.Paths.First().Key; var configFileContent = mockFileSystem.ReadAllText(configFile); Assert.Equal( @"<?xml version=""1.0"" encoding=""utf-8""?> <configuration> <packageSources /> <disabledPackageSources> <add key=""Windows 8 Packages"" value=""true"" /> </disabledPackageSources> </configuration>".Replace("\r", ""), configFileContent.Replace("\r", "")); }
public void SavePackageSourcesWillNotSwapInTheDefaultFeedForTheWindows8ExpressFeedWhenNotRunningWindows8Express() { // Arrange var userSettings = new Mock<ISettings>(); var packageSourceProvider = new Mock<IPackageSourceProvider>(); var vsShellInfo = new Mock<IVsShellInfo>(); vsShellInfo.Setup(_ => _.IsVisualStudioExpressForWindows8).Returns(false); var provider = new VsPackageSourceProvider(userSettings.Object, packageSourceProvider.Object, vsShellInfo.Object); // Act provider.SavePackageSources(new[] { new PackageSource("theFirstSource", "theFirstFeed"), new PackageSource("https://nuget.org/api/v2/curated-feeds/express-for-windows8/", "Visual Studio Express for Windows 8 official package source"){ IsOfficial = true }, new PackageSource("theThirdSource", "theThirdFeed"), }); // Assert packageSourceProvider.Verify(_ => _.SavePackageSources(It.Is<IEnumerable<PackageSource>>(packageSources => packageSources.ElementAt(1).Name == "Visual Studio Express for Windows 8 official package source"))); }
public void SavePackageSourcesWillSaveTheWindows8ExpressFeedWhenNotRunningWindows8Express() { // Arrange var userSettings = new Mock<ISettings>(); var packageSourceProvider = new Mock<IPackageSourceProvider>(); var vsShellInfo = new Mock<IVsShellInfo>(); vsShellInfo.Setup(_ => _.IsVisualStudioExpressForWindows8).Returns(false); var provider = new VsPackageSourceProvider(userSettings.Object, packageSourceProvider.Object, vsShellInfo.Object); IList<PackageSource> savedSources = null; packageSourceProvider.Setup(_ => _.SavePackageSources(It.IsAny<IEnumerable<PackageSource>>())) .Callback((IEnumerable<PackageSource> _) => savedSources = _.ToList()) .Verifiable(); // Act provider.SavePackageSources(new[] { new PackageSource("theFirstSource", "theFirstFeed"), new PackageSource("https://nuget.org/api/v2/curated-feeds/windows8-packages/", "Windows 8 Packages"){ IsOfficial = true }, new PackageSource("theThirdSource", "theThirdFeed"), }); // Assert Assert.NotNull(savedSources); Assert.Equal(3, savedSources.Count); AssertPackageSource(savedSources[0], "theFirstFeed", "theFirstSource"); AssertPackageSource(savedSources[1], "Windows 8 Packages", "https://nuget.org/api/v2/curated-feeds/windows8-packages/"); AssertPackageSource(savedSources[2], "theThirdFeed", "theThirdSource"); }
public void RemovingActivePackageSourceSetsActivePackageSourceToNull() { // Arrange var userSettingsManager = new MockUserSettingsManager(); var packageSourceProvider = new MockPackageSourceProvider(); var provider = new VsPackageSourceProvider(userSettingsManager, packageSourceProvider); var packageSource = new PackageSource("a", "a"); provider.SavePackageSources(new[] { packageSource }); provider.ActivePackageSource = packageSource; // Act bool result = provider.RemovePackageSource(packageSource); // Assert Assert.True(result); Assert.Null(provider.ActivePackageSource); // values should be null because we don't persist aggregate source into user settings file var values = userSettingsManager.GetValues(PackageSourceProvider.PackageSourcesSectionName); Assert.Null(values); }