コード例 #1
0
        private PackageMetadataResourceV3 GetPackageMetadataResource()
        {
            RegistrationResourceV3 regResource         = _sourceRepository.GetResource <RegistrationResourceV3>();
            ReportAbuseResourceV3  reportAbuseResource = _sourceRepository.GetResource <ReportAbuseResourceV3>();
            var packageMetadataRes = new PackageMetadataResourceV3(_httpSource.HttpSource, regResource, reportAbuseResource);

            return(packageMetadataRes);
        }
コード例 #2
0
        private PackageSearchResourceV3 GetSearch()
        {
            PackageMetadataResourceV3 packageMetadataRes = GetPackageMetadataResource();
            RawSearchResourceV3       rawSearchResource  = _sourceRepository.GetResource <RawSearchResourceV3>();

            Assert.NotNull(rawSearchResource);
            var search = new PackageSearchResourceV3(rawSearchResource, packageMetadataRes);

            return(search);
        }
コード例 #3
0
        [Trait("Category", "integration")] // because it talks to nuget.org
        public async Task CacheGetPackageMetadata()
        {
            InitializeClient(CacheIndex);
            PackageMetadataResourceV3 packageMetadataRes = GetPackageMetadataResource();
            var meta = await packageMetadataRes.GetMetadataAsync("log4net", true, true, _cacheContext, logger, CancellationToken.None);

            Assert.NotEmpty(meta);
            var versions = meta.Select(m => m.Identity.Version);

            Assert.Contains(versions, one => NuGetVersion.Parse("2.0.8").Equals(one));
        }
コード例 #4
0
        [Trait("Category", "integration")] // because it uses external nupkg files
        public async Task PushAndDeletePackage()
        {
            InitializeClient(MainIndex);
            var packageResource = await _sourceRepository.GetResourceAsync <PackageUpdateResource>();

            await packageResource.Push(TestResources.GetNupkgBagetTest1(),
                                       null, 5, false, GetApiKey, GetApiKey, false, logger);

            await packageResource.Delete(
                "liget-test1", "1.0.0", GetApiKey, _ => true, false, logger);

            PackageMetadataResourceV3 packageMetadataRes = GetPackageMetadataResource();
            var meta = await packageMetadataRes.GetMetadataAsync("liget-test1", true, true, _cacheContext, logger, CancellationToken.None);

            Assert.Empty(meta);
        }
コード例 #5
0
        [Trait("Category", "integration")] // because it uses external nupkg files
        public async Task PushValidPackage()
        {
            InitializeClient(MainIndex);
            var packageResource = await _sourceRepository.GetResourceAsync <PackageUpdateResource>();

            await packageResource.Push(TestResources.GetNupkgBagetTest1(),
                                       null, 5, false, GetApiKey, GetApiKey, false, logger);

            PackageMetadataResourceV3 packageMetadataRes = GetPackageMetadataResource();
            var meta = await packageMetadataRes.GetMetadataAsync("liget-test1", true, true, _cacheContext, logger, CancellationToken.None);

            Assert.NotEmpty(meta);
            var one = meta.First();

            Assert.Equal(new PackageIdentity("liget-test1", NuGetVersion.Parse("1.0.0")), one.Identity);
        }
コード例 #6
0
ファイル: NuGetClient.cs プロジェクト: zeeops/liget
            public NuRepository(List <Lazy <INuGetResourceProvider> > providers, Uri repositoryUrl, Microsoft.Extensions.Logging.ILogger <NuGetClient> logger)
            {
                this.providers     = providers;
                this.repositoryUrl = repositoryUrl;
                this._logger       = logger;
                PackageSource packageSource = new PackageSource(repositoryUrl.AbsoluteUri);

                _sourceRepository = new SourceRepository(packageSource, providers);
                _cacheContext     = new SourceCacheContext();
                var httpSource = _sourceRepository.GetResource <HttpSourceResource>();

                _regResource = _sourceRepository.GetResource <RegistrationResourceV3>();
                ReportAbuseResourceV3 reportAbuseResource = _sourceRepository.GetResource <ReportAbuseResourceV3>();

                _metadataSearch     = new PackageMetadataResourceV3(httpSource.HttpSource, _regResource, reportAbuseResource);
                _versionSearch      = new RemoteV3FindPackageByIdResource(_sourceRepository, httpSource.HttpSource);
                this._loggerAdapter = new NuGetLoggerAdapter <NuGetClient>(logger);
            }
コード例 #7
0
        [Trait("Category", "integration")] // because it uses external nupkg files
        public async Task PushAndDownloadPackageWithNoDependencies()
        {
            InitializeClient(MainIndex);
            var packageResource = await _sourceRepository.GetResourceAsync <PackageUpdateResource>();

            await packageResource.Push(TestResources.GetNupkgExample3(),
                                       null, 5, false, GetApiKey, GetApiKey, false, logger);

            PackageMetadataResourceV3 packageMetadataRes = GetPackageMetadataResource();
            var meta = await packageMetadataRes.GetMetadataAsync("example3", true, true, _cacheContext, logger, CancellationToken.None);

            Assert.NotEmpty(meta);
            var one = meta.First();

            Assert.Equal(new PackageIdentity("example3", NuGetVersion.Parse("1.0.0")), one.Identity);

            var findByIdRes = new RemoteV3FindPackageByIdResource(_sourceRepository, _httpSource.HttpSource);
            var downloader  = await findByIdRes.GetPackageDownloaderAsync(
                new PackageIdentity("example3", NuGetVersion.Parse("1.0.0")),
                _cacheContext, logger, CancellationToken.None);

            string tempPath = Path.Combine(tempDir.UniqueTempFolder, "test.nupkg");
            await downloader.CopyNupkgFileToAsync(tempPath, CancellationToken.None);
        }