public void Serialization_WhenDeserializing_Succeeds() { NuGetSettings expectedSettings = CreateNuGetSettings(); var serializer = new NuGetSettingsSerializer(); using (var stream = new MemoryStream()) { serializer.Serialize(stream, expectedSettings); Assert.NotEqual(0, stream.Length); stream.Seek(offset: 0, loc: SeekOrigin.Begin); NuGetSettings actualSettings = serializer.Deserialize(stream); Assert.NotSame(expectedSettings, actualSettings); AssertAreEquivalent(expectedSettings, actualSettings); } }
private static void DownloadPackages(string packagesDirectory, List <string> sources) { var settings = new InMemorySettings(); var nuGetSettings = new NuGetSettings(settings); nuGetSettings.GlobalPackagesFolder = packagesDirectory; var packageRangeDownloader = new PackageRangeDownloader(nuGetSettings); var alignedVersionDownloader = new AlignedVersionsDownloader(packageRangeDownloader); using (var sourceCacheContext = new SourceCacheContext()) { var downloadTask = DownloadAsync( sources, alignedVersionDownloader, sourceCacheContext, new ConsoleLogger()); downloadTask.Wait(); } }
private static void AssertAreEquivalent(NuGetSettings expectedSettings, NuGetSettings actualSettings) { Assert.Equal(expectedSettings.WindowSettings.Count, actualSettings.WindowSettings.Count); IReadOnlyList <PropertyInfo> properties = GetSerializableProperties <UserSettings>(); foreach (string key in expectedSettings.WindowSettings.Keys) { Assert.True(actualSettings.WindowSettings.ContainsKey(key)); UserSettings expectedUserSettings = expectedSettings.WindowSettings[key]; UserSettings actualUserSettings = actualSettings.WindowSettings[key]; foreach (PropertyInfo property in properties) { object expectedValue = property.GetValue(expectedUserSettings); object actualValue = property.GetValue(actualUserSettings); Assert.Equal(expectedValue, actualValue); } } }
private static NuGetSettings CreateNuGetSettings() { var settings = new NuGetSettings(); var userSettings = new UserSettings() { SourceRepository = "a", ShowPreviewWindow = true, ShowDeprecatedFrameworkWindow = false, RemoveDependencies = true, ForceRemove = false, IncludePrerelease = true, SelectedFilter = ItemFilter.Installed, DependencyBehavior = Resolver.DependencyBehavior.HighestMinor, FileConflictAction = ProjectManagement.FileConflictAction.Overwrite, OptionsExpanded = true, SortPropertyName = "b", SortDirection = System.ComponentModel.ListSortDirection.Descending }; settings.WindowSettings.Add("c", userSettings); return(settings); }
public void ConfigureServices(IServiceCollection services) { services.AddSingleton(serviceProvider => { var hostingEnvironment = serviceProvider.GetService <IHostingEnvironment>(); var settings = new InMemorySettings(); var nuGetSettings = new NuGetSettings(settings); nuGetSettings.GlobalPackagesFolder = Path.Combine(hostingEnvironment.ContentRootPath, "packages"); return(nuGetSettings); }); services.AddLogging(builder => { builder.AddConsole(); builder.AddDebug(); }); services.AddApplicationInsightsTelemetry(); services.AddTransient <IAlignedVersionsDownloader, AlignedVersionsDownloader>(); services.AddTransient <IAssemblyLoader, AssemblyLoader>(); services.AddTransient <IFrameworkEnumerator <Framework>, FrameworkEnumerator>(); services.AddTransient <IFrameworkList, FrameworkList <Framework> >(); services.AddTransient <IPackageLoader, PackageLoader>(); services.AddTransient <IPackageRangeDownloader, PackageRangeDownloader>(); services.AddSingleton <IToolsFactory, ToolsFactory>(); try { // Try to construct the reflection-based tools factory. var serviceProvider = services.BuildServiceProvider(); var toolsFactory = serviceProvider.GetRequiredService <IToolsFactory>(); var versions = toolsFactory.GetAvailableVersionsAsync(CancellationToken.None).Result; if (!versions.Any()) { throw new InvalidOperationException("At least one version is required."); } } catch { // Fallback to using the NuGet version directly referenced by this project. var serviceDescriptor = services.First(x => x.ImplementationType == typeof(ToolsFactory)); services.Remove(serviceDescriptor); services.AddTransient <IFrameworkLogic <Framework>, FrameworkLogic>(); services.AddTransient <IVersionLogic <Version>, VersionLogic>(); services.AddTransient <IVersionRangeLogic <Version, VersionRange>, VersionRangeLogic>(); var clientVersion = NuGet.Versioning.NuGetVersion.Parse(ClientVersionUtility.GetNuGetAssemblyVersion()).ToNormalizedString(); services.AddTransient <IToolsService>(serviceProvider => { return(new ToolsService <Framework, Version, VersionRange>( clientVersion, serviceProvider.GetRequiredService <IFrameworkLogic <Framework> >(), serviceProvider.GetRequiredService <IVersionLogic <Version> >(), serviceProvider.GetRequiredService <IVersionRangeLogic <Version, VersionRange> >())); }); services.AddTransient <IFrameworkPrecedenceService>(serviceProvider => { return(new FrameworkPrecedenceService <Framework>( clientVersion, serviceProvider.GetRequiredService <IFrameworkList>(), serviceProvider.GetRequiredService <IFrameworkLogic <Framework> >())); }); services.AddSingleton <IToolsFactory, SingletonToolsFactory>(); } services.AddMvc(); }