public async Task LatestDoesNotIncludeUnpublished() { //arrange var metadata = PackageSearchMetadataBuilder.FromIdentity(new PackageIdentity("test", new NuGetVersion(1, 2, 3))).Build(); var metadataResource = Substitute.For <PackageMetadataResource>(); metadataResource.GetMetadataAsync(Arg.Any <string>(), Arg.Any <bool>(), Arg.Any <bool>(), Arg.Any <SourceCacheContext>(), Arg.Any <ILogger>(), Arg.Any <CancellationToken>()) .Returns(m => new List <IPackageSearchMetadata> { metadata }, m => throw new Exception(":(")); var v1 = new VersionInfo(new NuGetVersion(1, 2, 3), new DateTime(2015, 1, 1)); var v2 = new VersionInfo(new NuGetVersion(2, 3, 4), new DateTime(1900, 1, 1)); var versionCache = new Dictionary <string, IList <VersionInfo> > { { "test", new List <VersionInfo> { v1, v2 } } }; var checker = new PackageVersionChecker(metadataResource, versionCache); //act var result = await checker.GetResultTask("test", new NuGetVersion(1, 2, 3)); //assert var latest = result.Latest.Version.ToString(); Assert.Equal("1.2.3", latest); }
public void GetPackagesGetsPackages() { //arrange var metadata = PackageSearchMetadataBuilder.FromIdentity(new PackageIdentity("test", new NuGetVersion(1, 2, 3))).Build(); var metadataResource = Substitute.For <PackageMetadataResource>(); metadataResource.GetMetadataAsync(Arg.Any <string>(), Arg.Any <bool>(), Arg.Any <bool>(), Arg.Any <SourceCacheContext>(), Arg.Any <ILogger>(), Arg.Any <CancellationToken>()) .Returns(m => new List <IPackageSearchMetadata> { metadata }, m => throw new Exception(":(")); var v1 = new VersionInfo(new NuGetVersion(1, 2, 3), new DateTime(2015, 1, 1)); var v2 = new VersionInfo(new NuGetVersion(2, 3, 4), new DateTime(2016, 1, 1)); var versionCache = new Dictionary <string, IList <VersionInfo> > { { "test", new List <VersionInfo> { v1, v2 } } }; var checker = new PackageVersionChecker(metadataResource, versionCache); var project = new TestProjectFile("test", new Dictionary <string, NuGetVersion> { { "test", new NuGetVersion(1, 2, 3) } }); //act var packages = checker.GetPackages(new[] { project }); //assert var latest = packages.First().Value.First().Latest.Version.ToString(); Assert.Equal("2.3.4", latest); }
public static void Main(string[] args) { var metadataResource = new SourceRepository(new PackageSource("https://api.nuget.org/v3/index.json"), Repository.Provider.GetCoreV3()).GetResource <PackageMetadataResource>(); var versionCache = new ConcurrentDictionary <string, IList <VersionInfo> >(); var packageVersionChecker = new PackageVersionChecker(metadataResource, versionCache); var projectRetriever = new ProjectFileManager(); var runner = new Runner(packageVersionChecker, projectRetriever); var output = runner.Run(args); Console.WriteLine(output); }
public async Task CanGetVersionInfoFromMetadata() { //arrange var metadata = PackageSearchMetadataBuilder.FromIdentity(new PackageIdentity("test", new NuGetVersion(1, 2, 3))).Build(); var metadataResource = Substitute.For <PackageMetadataResource>(); metadataResource.GetMetadataAsync(Arg.Any <string>(), Arg.Any <bool>(), Arg.Any <bool>(), Arg.Any <SourceCacheContext>(), Arg.Any <ILogger>(), Arg.Any <CancellationToken>()) .Returns(new List <IPackageSearchMetadata> { metadata }); var checker = new PackageVersionChecker(metadataResource, new Dictionary <string, IList <VersionInfo> >()); //act var versions = await checker.GetVersions("test"); //assert Assert.Equal("1.2.3", versions.First().Version.ToString()); }
public void AwaitResultsWaitsForAll() { //arrange var resultsTasks = new[] { Sleep(1), Sleep(2), Sleep(3), Sleep(4) }; //act var versions = PackageVersionChecker.AwaitResults(resultsTasks).ToArray(); //assert Assert.Equal("1", versions[0].Name); Assert.Equal("2", versions[1].Name); Assert.Equal("3", versions[2].Name); Assert.Equal("4", versions[3].Name); }