private IPackageSearchMetadata CreatePackageSearchResult(IPackage package, SearchFilter filter, CancellationToken cancellationToken) { var metadata = new PackageSearchMetadata(package); return(metadata .WithVersions(() => GetVersions(package, filter, CancellationToken.None))); }
public static PackageUpdateSet UpdateSetFor(PackageIdentity package, DateTimeOffset published, params PackageInProject[] packages) { var latest = new PackageSearchMetadata(package, OfficialPackageSource(), published, null); var updates = new PackageLookupResult(VersionChange.Major, latest, null, null); return(new PackageUpdateSet(updates, packages)); }
public static PackageUpdateSet ForNewVersion(PackageIdentity newPackage, params PackageInProject[] packages) { var publishedDate = new DateTimeOffset(2018, 2, 19, 11, 12, 7, TimeSpan.Zero); var latest = new PackageSearchMetadata(newPackage, OfficialPackageSource(), publishedDate, null); var updates = new PackageLookupResult(VersionChange.Major, latest, null, null); return(new PackageUpdateSet(updates, packages)); }
public static PackageUpdateSet UpdateSetFor(PackageVersionRange package, params PackageInProject[] packages) { var publishedDate = new DateTimeOffset(2018, 2, 19, 11, 12, 7, TimeSpan.Zero); var latest = new PackageSearchMetadata(package.SingleVersionIdentity(), new PackageSource("http://none"), publishedDate, null); var updates = new PackageLookupResult(VersionChange.Major, latest, null, null); return(new PackageUpdateSet(updates, packages)); }
private static void ApiHasNewVersionForPackage(IApiPackageLookup lookup, string packageName) { var responseMetaData = new PackageSearchMetadata( new PackageIdentity(packageName, new NuGetVersion(2, 3, 4)), new PackageSource("http://none"), DateTimeOffset.Now, null); lookup.FindVersionUpdate(Arg.Is <PackageIdentity>(pm => pm.Id == packageName), Arg.Any <NuGetSources>(), Arg.Any <VersionChange>(), Arg.Any <UsePrerelease>()) .Returns(new PackageLookupResult(VersionChange.Major, responseMetaData, responseMetaData, responseMetaData)); }
private PackageUpdateSet BuildPackageUpdateSet(PackageInProject pip) { var package = new PackageIdentity(pip.Id, new NuGetVersion("1.4.5")); var latest = new PackageSearchMetadata(package, new PackageSource("http://none"), null, null); var updates = new PackageLookupResult(VersionChange.Major, latest, null, null); return(new PackageUpdateSet(updates, new List <PackageInProject> { pip })); }
public static PackageUpdateSet ForInternalSource(params PackageInProject[] packages) { var newPackage = new PackageIdentity("foo.bar", new NuGetVersion("1.2.3")); var publishedDate = new DateTimeOffset(2018, 2, 19, 11, 12, 7, TimeSpan.Zero); var latest = new PackageSearchMetadata(newPackage, InternalPackageSource(), publishedDate, null); var updates = new PackageLookupResult(VersionChange.Major, latest, null, null); return(new PackageUpdateSet(updates, packages)); }
public static PackageUpdateSet For( PackageIdentity package, DateTimeOffset published, IEnumerable <PackageInProject> packages, IEnumerable <PackageDependency> dependencies) { var latest = new PackageSearchMetadata(package, OfficialPackageSource(), published, dependencies); var updates = new PackageLookupResult(VersionChange.Major, latest, null, null); return(new PackageUpdateSet(updates, packages)); }
public static PackageUpdateSet LimitedToMinor(DateTimeOffset?publishedAt, params PackageInProject[] packages) { var latestId = new PackageIdentity("foo.bar", new NuGetVersion("2.3.4")); var latest = new PackageSearchMetadata(latestId, OfficialPackageSource(), publishedAt, null); var match = new PackageSearchMetadata( new PackageIdentity("foo.bar", new NuGetVersion("1.2.3")), OfficialPackageSource(), null, null); var updates = new PackageLookupResult(VersionChange.Minor, latest, match, null); return(new PackageUpdateSet(updates, packages)); }
/// <summary> /// Gets an array of version information for a specific package. /// </summary> /// <param name="metadata">Specific package used to obtain the version information.</param> /// <param name="filter">Additional details used to limit the search results.</param> /// <returns>An instance of <see cref="IEnumerable{VersionInfo}"/> containing version information.</returns> private static IEnumerable <VersionInfo> GetVersions(PackageSearchMetadata metadata, SearchFilter filter) { var parsedVersions = metadata.ParsedVersions; var totalDownloadCount = parsedVersions .Select(v => v.DownloadCount) .Sum(); return(parsedVersions .Select(v => v.Version) .Where(v => filter.IncludePrerelease || !v.IsPrerelease) .Concat(new [] { metadata.Version }) .Distinct() .Select(v => new VersionInfo(v, totalDownloadCount)) .ToArray()); }
private static PackageUpdateSet UpdateFoobarFromOneVersion() { var newPackage = LatestVersionOfPackageFoobar(); var currentPackages = new List <PackageInProject> { new PackageInProject("foobar", "1.0.1", PathToProjectOne()), new PackageInProject("foobar", "1.0.1", PathToProjectTwo()) }; var latest = new PackageSearchMetadata(newPackage, new PackageSource("http://none"), DateTimeOffset.Now, null); var updates = new PackageLookupResult(VersionChange.Major, latest, null, null); return(new PackageUpdateSet(updates, currentPackages)); }
private static PackageUpdateSet UpdateBarFromTwoVersions(TimeSpan?packageAge = null) { var pubDate = DateTimeOffset.Now.Subtract(packageAge ?? TimeSpan.Zero); var currentPackages = new List <PackageInProject> { new PackageInProject("bar", "1.0.1", PathToProjectOne()), new PackageInProject("bar", "1.2.1", PathToProjectTwo()) }; var matchId = new PackageIdentity("bar", new NuGetVersion("4.0.0")); var match = new PackageSearchMetadata(matchId, new PackageSource("http://none"), pubDate, null); var updates = new PackageLookupResult(VersionChange.Major, match, null, null); return(new PackageUpdateSet(updates, currentPackages)); }
private static PackageUpdateSet MakeUpdateSet(string id) { var currentPackages = new List <PackageInProject> { new PackageInProject(id, "1.0.0", new PackagePath("base", "rel", PackageReferenceType.ProjectFile)), new PackageInProject(id, "2.0.0", new PackagePath("base", "rel", PackageReferenceType.ProjectFile)), }; var majorUpdate = new PackageSearchMetadata( new PackageIdentity( id, new NuGetVersion("3.0.0")), new PackageSource("https://api.nuget.org/v3/index.json"), null, null); var lookupResult = new PackageLookupResult(VersionChange.Major, majorUpdate, null, null); return(new PackageUpdateSet(lookupResult, currentPackages)); }
public static PackageUpdateSet MakeUpdateSet(string packageName, string version = "1.2.3", PackageReferenceType packageRefType = PackageReferenceType.ProjectFile) { var packageId = PackageVersionRange.Parse(packageName, version); var latest = new PackageSearchMetadata( packageId.SingleVersionIdentity(), OfficialPackageSource(), null, Enumerable.Empty <PackageDependency>()); var packages = new PackageLookupResult(VersionChange.Major, latest, null, null); var pip = new PackageInProject(packageId, MakePackagePath(packageRefType), null) .InList(); return(new PackageUpdateSet(packages, pip)); }
// todo move these to PackageUpdates. public static PackageUpdateSet UpdateFooFromOneVersion(TimeSpan?packageAge = null) { var pubDate = DateTimeOffset.Now.Subtract(packageAge ?? TimeSpan.Zero); var currentPackages = new List <PackageInProject> { new PackageInProject("foo", "1.0.1", PathToProjectOne()), new PackageInProject("foo", "1.0.1", PathToProjectTwo()) }; var matchVersion = new NuGetVersion("4.0.0"); var match = new PackageSearchMetadata(new PackageIdentity("foo", matchVersion), OfficialPackageSource(), pubDate, null); var updates = new PackageLookupResult(VersionChange.Major, match, null, null); return(new PackageUpdateSet(updates, currentPackages)); }
public void WhenThereIsAMajorUpdate() { var logger = Substitute.For <INuKeeperLogger>(); var reporter = new PackageLookupResultReporter(logger); var fooMetadata = new PackageSearchMetadata( new PackageIdentity("foo", new NuGetVersion(2, 3, 4)), new PackageSource("http://none"), DateTimeOffset.Now, null); var data = new PackageLookupResult(VersionChange.Major, fooMetadata, fooMetadata, fooMetadata); reporter.Report(data); logger.Received() .Detailed("Selected update of package foo to highest version, 2.3.4."); logger.DidNotReceive().Error(Arg.Any <string>()); logger.DidNotReceive().Minimal(Arg.Any <string>()); logger.DidNotReceive().Normal(Arg.Any <string>()); }
public void WhenThereIsAMajorUpdateThatCannotBeUsed() { var logger = Substitute.For <INuKeeperLogger>(); var reporter = new PackageLookupResultReporter(logger); var fooMajor = new PackageSearchMetadata( new PackageIdentity("foo", new NuGetVersion(3, 0, 0)), new PackageSource("http://none"), DateTimeOffset.Now, null); var data = new PackageLookupResult(VersionChange.Minor, fooMajor, null, null); reporter.Report(data); logger.Received() .Normal("Package foo version 3.0.0 is available but is not allowed. Allowing Minor version updates."); logger.DidNotReceive().Error(Arg.Any <string>()); logger.DidNotReceive().Minimal(Arg.Any <string>()); logger.DidNotReceive().Detailed(Arg.Any <string>()); }
private static string PackageVersionAndDate(NuGetVersion baseline, PackageSearchMetadata packageVersion) { const string none = ","; if (packageVersion == null) { return(none); } if (packageVersion.Identity.Version <= baseline) { return(none); } var version = packageVersion.Identity.Version; var date = DateFormat.AsUtcIso8601(packageVersion.Published); return($"{version},{date}"); }
public void OneUpdate_IsValid() { var fooVersionFour = new PackageIdentity("foo", VersionFour()); var highest = new PackageSearchMetadata(fooVersionFour, _source, DateTimeOffset.Now, null); var currentPackages = new List <PackageInProject> { new PackageInProject("foo", "1.0.0", PathToProjectOne()) }; var lookupResult = new PackageLookupResult(VersionChange.Major, highest, null, null); var updates = new PackageUpdateSet(lookupResult, currentPackages); Assert.That(updates, Is.Not.Null); Assert.That(updates.Packages.Major?.Identity.Version, Is.EqualTo(VersionFour())); Assert.That(updates.AllowedChange, Is.EqualTo(VersionChange.Major)); Assert.That(updates.Selected, Is.Not.Null); Assert.That(updates.Selected.Identity, Is.EqualTo(fooVersionFour)); Assert.That(updates.SelectedId, Is.EqualTo("foo")); Assert.That(updates.SelectedVersion, Is.EqualTo(highest.Identity.Version)); Assert.That(updates.Selected.Source, Is.EqualTo(_source)); }
public NuspecReaderMock(PackageSearchMetadata data) : base(new XDocument()) { _data = data; }
private static void AssertPackageIdentityIs(PackageSearchMetadata package, string id) { Assert.That(package, Is.Not.Null); Assert.That(package.Identity, Is.Not.Null); Assert.That(package.Identity.Id, Is.EqualTo(id)); }
private static PackageSearchMetadata FilteredPackageVersion(NuGetVersion baseline, PackageSearchMetadata packageVersion) { if (packageVersion == null) { return(null); } if (packageVersion.Identity.Version <= baseline) { return(null); } return(packageVersion); }