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)); }
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); }
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"]); }
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); }
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); }
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()); }