コード例 #1
0
        public async Task GetPackageMetadataAsync_WithCancellationToken_ThrowsAsync()
        {
            // Arrange
            var testPackageIdentity = new PackageCollectionItem("FakePackage", new NuGetVersion("1.0.0"), installedReferences: null);
            var _target             = new InstalledPackageFeed(new[] { testPackageIdentity }, _metadataProvider);

            using CancellationTokenSource cts = new CancellationTokenSource();
            cts.Cancel();

            // Act and Assert
            await Assert.ThrowsAsync <OperationCanceledException>(async() => await _target.GetPackageMetadataAsync(It.IsAny <PackageIdentity>(), It.IsAny <bool>(), cts.Token));
        }
コード例 #2
0
        public async Task GetMetadataForPackagesAndSortAsync_WithTestData_AlwaysSortedByPackageIdAsync(string[] packageIds)
        {
            // Arrange
            PackageCollectionItem[] feedCollection = packageIds.Select(pkgId => new PackageCollectionItem(pkgId, new NuGetVersion("0.0.1"), installedReferences: null)).ToArray();
            var _target = new InstalledPackageFeed(feedCollection, _metadataProvider);

            // Act
            IPackageSearchMetadata[] result = await _target.GetMetadataForPackagesAndSortAsync(feedCollection, includePrerelease : It.IsAny <bool>(), CancellationToken.None);

            // Assert
            var idComparer = Comparer <IPackageSearchMetadata> .Create((a, b) => a.Identity.Id.CompareTo(b.Identity.Id));

            result.Should().BeInAscendingOrder(idComparer);
        }
コード例 #3
0
        public void CreateResults_WithSampleData_ResultAndCollectionAreEqual(string[] packageIds)
        {
            // Arrange
            IPackageSearchMetadata[] meta = packageIds
                                            .Select(id => PackageSearchMetadataBuilder.FromIdentity(new PackageIdentity(id, new NuGetVersion("1.0.0"))).Build())
                                            .ToArray();

            // Act
            SearchResult <IPackageSearchMetadata> result = InstalledPackageFeed.CreateResult(meta);

            // Assert
            Assert.Equal(result, meta);
            Assert.NotNull(result.SourceSearchStatus);
            Assert.NotNull(result.SourceSearchStatus["Installed"]);
        }
コード例 #4
0
        public void PerformLookup_WithSampleData_Succeeds(string query, int expectedResultsCount)
        {
            // Arrange
            string[]          packageIds = new string[] { "id", "package", "nuget", "sample", "one" };
            PackageIdentity[] ids        = packageIds.Select(id => new PackageIdentity(id, new NuGetVersion("1.0.0"))).ToArray();
            var token = new FeedSearchContinuationToken()
            {
                SearchString = query,
            };

            // Act
            PackageIdentity[] result = InstalledPackageFeed.PerformLookup(ids, token);

            // Assert
            Assert.NotNull(result);
            Assert.Equal(expectedResultsCount, result.Length);
        }
コード例 #5
0
        public async Task SearchAsync_WithInstalledPackages_AlwaysSortedResultsAsync(string[] installedPkgs, string query, int expectedResultsCount)
        {
            // Arrange
            var installedCollection = installedPkgs
                                      .Select(p => new PackageCollectionItem(p, new NuGetVersion("0.0.1"), installedReferences: null));
            var _target = new InstalledPackageFeed(installedCollection, _metadataProvider);

            // Act
            SearchResult <IPackageSearchMetadata> results = await _target.SearchAsync(query, new SearchFilter(includePrerelease : false), CancellationToken.None);

            // Assert
            var idComparer = Comparer <IPackageSearchMetadata> .Create((a, b) => a.Identity.Id.CompareTo(b.Identity.Id));

            Assert.Equal(results.Items.Count, results.RawItemsCount);
            results.Should().BeInAscendingOrder(idComparer);
            results.Should().HaveCount(expectedResultsCount);
        }
コード例 #6
0
        public async Task GetPackagesWithUpdatesAsync_WithHttpCache()
        {
            // Arrange
            var testPackageIdentity = new PackageCollectionItem("FakePackage", new NuGetVersion("1.0.0"), null);

            var packageIdentity = new PackageIdentity("FakePackage", new NuGetVersion("1.0.0"));

            SetupRemotePackageMetadata("FakePackage", "0.0.1", "1.0.0", "2.0.0");

            var _target = new InstalledPackageFeed(new[] { testPackageIdentity }, _metadataProvider);

            // Act
            var package = await _target.GetPackageMetadataAsync(
                packageIdentity, false, CancellationToken.None);

            Assert.NotNull(package);
            Assert.Equal("1.0.0", package.Identity.Version.ToString());
            var allVersions = await package.GetVersionsAsync();

            Assert.NotEmpty(allVersions);
            Assert.Equal(
                new[] { "2.0.0", "1.0.0", "0.0.1" },
                allVersions.Select(v => v.Version.ToString()).ToArray());

            SetupRemotePackageMetadata("FakePackage", "0.0.1", "1.0.0", "2.0.1", "2.0.0", "1.0.1");

            package = await _target.GetPackageMetadataAsync(
                packageIdentity, false, CancellationToken.None);

            Assert.NotNull(package);
            Assert.Equal("1.0.0", package.Identity.Version.ToString());

            allVersions = await package.GetVersionsAsync();

            Assert.NotEmpty(allVersions);
            Assert.Equal(
                new[] { "2.0.1", "2.0.0", "1.0.1", "1.0.0", "0.0.1" },
                allVersions.Select(v => v.Version.ToString()).ToArray());
        }