Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Filter unlisted versions while updating a package through PMC #2270

Merged
merged 1 commit into from
May 31, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -1178,6 +1178,12 @@ private static bool IsPackageReferenceAutoReferenced(PackageReference package)
isUpdateAll);
}

// Prune unlisted versions if IncludeUnlisted flag is not set.
if (!resolutionContext.IncludeUnlisted)
{
prunedAvailablePackages = prunedAvailablePackages.Where(p => p.Listed);
}

// Remove packages that do not meet the constraints specified in the UpdateConstrainst
prunedAvailablePackages = PrunePackageTree.PruneByUpdateConstraints(prunedAvailablePackages, projectInstalledPackageReferences, resolutionContext.VersionConstraints);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6370,6 +6370,58 @@ public async Task TestPacManPreviewInstallPackage_WithGlobalPackageFolder()
}
}

[Fact]
public async Task TestPacMan_PreviewUpdatePackage_UnlistedPackage()
{
// Arrange

// Set up Package Source
var packages = new List<SourcePackageDependencyInfo>
{
new SourcePackageDependencyInfo("a", new NuGetVersion(1, 0, 0), new Packaging.Core.PackageDependency[] { }, true, null),
new SourcePackageDependencyInfo("a", new NuGetVersion(2, 0, 0), new Packaging.Core.PackageDependency[] { }, false, null)
};

var sourceRepositoryProvider = CreateSource(packages);

// Set up NuGetProject
var fwk45 = NuGetFramework.Parse("net45");

var installedPackage1 = new PackageIdentity("a", new NuGetVersion(1, 0, 0));

var installedPackages = new List<NuGet.Packaging.PackageReference>
{
new NuGet.Packaging.PackageReference(installedPackage1, fwk45, true)
};

var nuGetProject = new TestNuGetProject(installedPackages);

// Create Package Manager
using (var solutionManager = new TestSolutionManager(true))
{
var nuGetPackageManager = new NuGetPackageManager(
sourceRepositoryProvider,
NullSettings.Instance,
solutionManager,
new TestDeleteOnRestartManager());

// Main Act
var targetPackageId = "a";

var result = (await nuGetPackageManager.PreviewUpdatePackagesAsync(
targetPackageId,
new List<NuGetProject> { nuGetProject },
new ResolutionContext(DependencyBehavior.Lowest, false, false, VersionConstraints.None),
new TestNuGetProjectContext(),
sourceRepositoryProvider.GetRepositories(),
sourceRepositoryProvider.GetRepositories(),
CancellationToken.None)).ToList();

// Assert
Assert.Equal(0, result.Count);
}
}

private void VerifyPreviewActionsTelemetryEvents_PackagesConfig(IEnumerable<string> actual)
{
Assert.True(actual.Contains(TelemetryConstants.GatherDependencyStepName));
Expand Down