private async Task InitializeAsync() { _lazySettings = new AsyncLazy <ISettings>(ServiceLocator.GetInstanceAsync <ISettings>, ThreadHelper.JoinableTaskFactory); _lazySolutionManager = new AsyncLazy <IVsSolutionManager>(ServiceLocator.GetInstanceAsync <IVsSolutionManager>, ThreadHelper.JoinableTaskFactory); _projectManagerServiceSharedState = new NuGetProjectManagerServiceState(); _sharedServiceState = await SharedServiceState.CreateAsync(CancellationToken.None); }
private NuGetPackageSearchService SetupSearchService() { ClearSearchCache(); var packageSourceProvider = new Mock <IPackageSourceProvider>(); packageSourceProvider.Setup(x => x.LoadPackageSources()).Returns(new List <PackageSource> { _sourceRepository.PackageSource }); var sourceRepositoryProvider = new Mock <ISourceRepositoryProvider>(); sourceRepositoryProvider.Setup(x => x.CreateRepository(It.IsAny <PackageSource>())).Returns(_sourceRepository); sourceRepositoryProvider.Setup(x => x.CreateRepository(It.IsAny <PackageSource>(), It.IsAny <FeedType>())).Returns(_sourceRepository); sourceRepositoryProvider.SetupGet(x => x.PackageSourceProvider).Returns(packageSourceProvider.Object); var solutionManager = new Mock <IVsSolutionManager>(); solutionManager.SetupGet(x => x.SolutionDirectory).Returns("z:\\SomeRandomPath"); var settings = new Mock <ISettings>(); var deleteOnRestartManager = new Mock <IDeleteOnRestartManager>(); _componentModel.Setup(x => x.GetService <IDeleteOnRestartManager>()).Returns(deleteOnRestartManager.Object); _componentModel.Setup(x => x.GetService <IVsSolutionManager>()).Returns(solutionManager.Object); _componentModel.Setup(x => x.GetService <ISolutionManager>()).Returns(solutionManager.Object); _componentModel.Setup(x => x.GetService <ISettings>()).Returns(settings.Object); _componentModel.Setup(x => x.GetService <ISourceRepositoryProvider>()).Returns(sourceRepositoryProvider.Object); _componentModel.Setup(x => x.GetService <INuGetProjectContext>()).Returns(new Mock <INuGetProjectContext>().Object); _componentModel.Setup(x => x.GetService <IRestoreProgressReporter>()).Returns(new Mock <IRestoreProgressReporter>().Object); var service = Package.GetGlobalService(typeof(SAsyncServiceProvider)) as IAsyncServiceProvider; ServiceLocator.InitializePackageServiceProvider(service); var serviceActivationOptions = default(ServiceActivationOptions); var serviceBroker = new Mock <IServiceBroker>(); var authorizationService = new AuthorizationServiceClient(Mock.Of <IAuthorizationService>()); var sharedState = new SharedServiceState(sourceRepositoryProvider.Object); var projectManagerService = new Mock <INuGetProjectManagerService>(); projectManagerService.Setup(x => x.GetInstalledAndTransitivePackagesAsync( It.IsAny <IReadOnlyCollection <string> >(), It.IsAny <CancellationToken>())) .Returns(new ValueTask <IInstalledAndTransitivePackages>(new InstalledAndTransitivePackages(_installedPackages.ToList(), _transitivePackages.ToList()))); projectManagerService.Setup(x => x.GetPackageFoldersAsync( It.IsAny <IReadOnlyCollection <string> >(), It.IsAny <CancellationToken>())) .Returns(new ValueTask <IReadOnlyCollection <string> >(Array.Empty <string>())); #pragma warning disable ISB001 // Dispose of proxies serviceBroker.Setup(x => x.GetProxyAsync <INuGetProjectManagerService>( NuGetServices.ProjectManagerService, It.IsAny <ServiceActivationOptions>(), It.IsAny <CancellationToken>())) .Returns(new ValueTask <INuGetProjectManagerService>(projectManagerService.Object)); #pragma warning restore ISB001 // Dispose of proxies return(new NuGetPackageSearchService(serviceActivationOptions, serviceBroker.Object, authorizationService, sharedState)); }
public async Task GetPackageManagerAsync_Always_ReturnsNewInstance() { using (SharedServiceState state = await SharedServiceState.CreateAsync(CancellationToken.None)) { NuGetPackageManager packageManager0 = await state.GetPackageManagerAsync(CancellationToken.None); NuGetPackageManager packageManager1 = await state.GetPackageManagerAsync(CancellationToken.None); NuGetPackageManager packageManager2 = await state.GetPackageManagerAsync(CancellationToken.None); Assert.NotNull(packageManager0); Assert.NotNull(packageManager1); Assert.NotNull(packageManager2); Assert.NotSame(packageManager0, packageManager1); Assert.NotSame(packageManager0, packageManager2); } }
public async Task GetTotalCountAsync_WithGreaterThanOrEqualToMaxCountResults_ReturnsMaxCount() { var source1 = new PackageSource("https://dotnet.myget.org/F/nuget-volatile/api/v3/index.json", "NuGetVolatile"); var source2 = new PackageSource("https://api.nuget.org/v3/index.json", "NuGet.org"); var sources = new List <PackageSource> { source1, source2 }; var sourceRepository = TestSourceRepositoryUtility.CreateSourceRepositoryProvider(new[] { source1, source2 }); var solutionManager = new Mock <IVsSolutionManager>(); solutionManager.SetupGet(x => x.SolutionDirectory).Returns("z:\\SomeRandomPath"); var settings = new Mock <ISettings>(); var deleteOnRestartManager = new Mock <IDeleteOnRestartManager>(); AddService <IDeleteOnRestartManager>(Task.FromResult <object>(deleteOnRestartManager.Object)); AddService <IVsSolutionManager>(Task.FromResult <object>(solutionManager.Object)); AddService <ISettings>(Task.FromResult <object>(settings.Object)); AddService <ISourceRepositoryProvider>(Task.FromResult <object>(sourceRepository)); var serviceActivationOptions = default(ServiceActivationOptions); var serviceBroker = new Mock <IServiceBroker>(); var authorizationService = new AuthorizationServiceClient(Mock.Of <IAuthorizationService>()); var sharedState = new SharedServiceState(sourceRepository); var projectManagerService = new Mock <INuGetProjectManagerService>(); var installedPackages = new List <IPackageReferenceContextInfo>(); var projects = new List <IProjectContextInfo> { new ProjectContextInfo( Guid.NewGuid().ToString(), ProjectModel.ProjectStyle.PackageReference, NuGetProjectKind.PackageReference) }; projectManagerService.Setup(x => x.GetInstalledPackagesAsync( It.IsAny <IReadOnlyCollection <string> >(), It.IsAny <CancellationToken>())) .Returns(new ValueTask <IReadOnlyCollection <IPackageReferenceContextInfo> >(installedPackages)); #pragma warning disable ISB001 // Dispose of proxies serviceBroker.Setup(x => x.GetProxyAsync <INuGetProjectManagerService>( NuGetServices.ProjectManagerService, It.IsAny <ServiceActivationOptions>(), It.IsAny <CancellationToken>())) .Returns(new ValueTask <INuGetProjectManagerService>(projectManagerService.Object)); #pragma warning restore ISB001 // Dispose of proxies using (var searchService = new NuGetPackageSearchService( serviceActivationOptions, serviceBroker.Object, authorizationService, sharedState)) { const int MaxCount = 100; int totalCount = await searchService.GetTotalCountAsync( MaxCount, projects, sources.Select(s => PackageSourceContextInfo.Create(s)).ToList(), targetFrameworks : new List <string>() { "net45", "net5.0" }, new SearchFilter(includePrerelease : true), NuGet.VisualStudio.Internal.Contracts.ItemFilter.All, CancellationToken.None); Assert.Equal(MaxCount, totalCount); } }