public PackageUpdateSet(PackageLookupResult packages, IEnumerable <PackageInProject> currentPackages) { if (packages == null) { throw new ArgumentNullException(nameof(packages)); } if (packages.Selected() == null) { throw new ArgumentException("packages does not have a selected update", nameof(packages)); } Packages = packages; if (currentPackages == null) { throw new ArgumentNullException(nameof(currentPackages)); } var currentPackagesList = currentPackages.ToList(); if (!currentPackagesList.Any()) { throw new ArgumentException($"{nameof(currentPackages)} is empty", nameof(currentPackages)); } CurrentPackages = currentPackagesList; CheckIdConsistency(); }
public static PackageUpdateSet UpdateSetFor(PackageIdentity package, DateTimeOffset published, params PackageInProject[] packages) { var latest = new PackageSearchMedatadata(package, OfficialPackageSource(), published, null); var updates = new PackageLookupResult(VersionChange.Major, latest, null, null); return(new PackageUpdateSet(updates, packages)); }
private static void AssertPackagesIdentityIs(PackageLookupResult packages, string id) { Assert.That(packages, Is.Not.Null); AssertPackageIdentityIs(packages.Major, id); AssertPackageIdentityIs(packages.Selected(), id); Assert.That(packages.Major.Identity.Version, Is.GreaterThanOrEqualTo(packages.Selected().Identity)); }
public void NullPackages_IsNotAllowed() { var lookupResult = new PackageLookupResult(VersionChange.Major, LatestFooMetadata(), null, null); var exception = Assert.Throws <ArgumentNullException>(() => new PackageUpdateSet(lookupResult, null)); Assert.That(exception.ParamName, Is.EqualTo("currentPackages")); }
private static PackageUpdateSet UpdateSetFor(PackageIdentity package, DateTimeOffset published, List <PackageInProject> packages, List <PackageDependency> deps) { var latest = new PackageSearchMedatadata(package, new PackageSource("http://none"), published, deps); var updates = new PackageLookupResult(VersionChange.Major, latest, null, null); return(new PackageUpdateSet(updates, packages)); }
private static PackageUpdateSet UpdateSetForNewVersion(PackageIdentity newPackage, params PackageInProject[] packages) { var publishedDate = new DateTimeOffset(2018, 2, 19, 11, 12, 7, TimeSpan.Zero); var latest = new PackageSearchMedatadata(newPackage, NugetSource, publishedDate); 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 PackageSearchMedatadata(package.SingleVersionIdentity(), new PackageSource("http://none"), publishedDate, null); var updates = new PackageLookupResult(VersionChange.Major, latest, null, null); return(new PackageUpdateSet(updates, packages)); }
private static PackageUpdateSet UpdateSetForInternalSource(params PackageInProject[] packages) { var newPackage = NewPackageFooBar123(); var publishedDate = new DateTimeOffset(2018, 2, 19, 11, 12, 7, TimeSpan.Zero); var latest = new PackageSearchMedatadata(newPackage, "http://internalfeed.myco.com/api", publishedDate); var updates = new PackageLookupResult(VersionChange.Major, latest, null, null); return(new PackageUpdateSet(updates, packages)); }
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 PackageSearchMedatadata(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 PackageSearchMedatadata(package, OfficialPackageSource(), published, dependencies); var updates = new PackageLookupResult(VersionChange.Major, latest, null, null); return(new PackageUpdateSet(updates, packages)); }
public void CannotHaveUpdateForDifferentPackageToNewVersion() { var currentPackageBar = new List <PackageInProject> { new PackageInProject("bar", "1.0.0", PathToProjectOne()) }; var lookupResult = new PackageLookupResult(VersionChange.Major, LatestFooMetadata(), null, null); Assert.Throws <ArgumentException>(() => new PackageUpdateSet(lookupResult, currentPackageBar)); }
private PackageUpdateSet BuildPackageUpdateSet(PackageInProject pip) { var package = new PackageIdentity(pip.Id, new NuGetVersion("1.4.5")); var latest = new PackageSearchMedatadata(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 void NullPackageMatch_IsNotAllowed() { var packages = new List <PackageInProject> { new PackageInProject("foo", "1.0.0", PathToProjectOne()) }; var lookupResult = new PackageLookupResult(VersionChange.Major, null, null, null); Assert.Throws <ArgumentException>(() => new PackageUpdateSet(lookupResult, packages)); }
public void CountCurrentVersions_WhenThereIsOneUpdate() { var currentPackages = new List <PackageInProject> { new PackageInProject("foo", "1.0.1", PathToProjectOne()) }; var lookupResult = new PackageLookupResult(VersionChange.Major, LatestFooMetadata(), null, null); var updates = new PackageUpdateSet(lookupResult, currentPackages); Assert.That(updates.CountCurrentVersions(), Is.EqualTo(1)); }
private static PackageUpdateSet UpdateSetForLimited(DateTimeOffset?publishedAt, params PackageInProject[] packages) { var latestId = new PackageIdentity("foo.bar", new NuGetVersion("2.3.4")); var latest = new PackageSearchMedatadata(latestId, NugetSource, publishedAt); var match = new PackageSearchMedatadata( NewPackageFooBar123(), NugetSource, null); var updates = new PackageLookupResult(VersionChange.Minor, latest, match, 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 PackageSearchMedatadata(latestId, OfficialPackageSource(), publishedAt, null); var match = new PackageSearchMedatadata( 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)); }
public void OneUpdate_HasCorrectCurrentPackages() { var currentPackages = new List <PackageInProject> { new PackageInProject("foo", "1.0.0", PathToProjectOne()) }; var lookupResult = new PackageLookupResult(VersionChange.Major, LatestFooMetadata(), null, null); var updates = new PackageUpdateSet(lookupResult, currentPackages); Assert.That(updates.CurrentPackages, Is.Not.Null); Assert.That(updates.CurrentPackages.Count, Is.EqualTo(1)); Assert.That(updates.CurrentPackages.First().Id, Is.EqualTo("foo")); }
public void WhenPackageDoesNotMatch_ExceptionMessageContainsMismatchedPackages() { var currentPackages = new List <PackageInProject> { new PackageInProject("bar", "1.0.0", PathToProjectOne()), new PackageInProject("bar", "1.0.0", PathToProjectTwo()), new PackageInProject("fish", "1.0.0", PathToProjectOne()) }; var lookupResult = new PackageLookupResult(VersionChange.Major, LatestFooMetadata(), null, null); var ex = Assert.Throws <ArgumentException>(() => new PackageUpdateSet(lookupResult, currentPackages)); Assert.That(ex.Message, Is.EqualTo("Updates must all be for package 'foo', got 'bar, fish'")); }
public static PackageUpdateSet MakePackageUpdateSet(string packageName) { var fooPackage = new PackageIdentity(packageName, new NuGetVersion("1.2.3")); var latest = new PackageSearchMedatadata(fooPackage, new PackageSource("http://none"), null, Enumerable.Empty <PackageDependency>()); var packages = new PackageLookupResult(VersionChange.Major, latest, null, null); var path = new PackagePath("c:\\foo", "bar", PackageReferenceType.ProjectFile); var pip = new PackageInProject(fooPackage, path, null); return(new PackageUpdateSet(packages, new List <PackageInProject> { pip })); }
public void CanCopeWithEmptyData() { var logger = Substitute.For <INuKeeperLogger>(); var reporter = new PackageLookupResultReporter(logger); var data = new PackageLookupResult(VersionChange.Major, null, null, null); reporter.Report(data); logger.DidNotReceive().Error(Arg.Any <string>()); logger.DidNotReceive().Minimal(Arg.Any <string>()); logger.DidNotReceive().Normal(Arg.Any <string>()); logger.DidNotReceive().Detailed(Arg.Any <string>()); }
private static PackageUpdateSet UpdateSet() { PackageIdentity fooPackage = new PackageIdentity("foo", new NuGetVersion(1, 2, 3)); var packages = new[] { new PackageInProject(fooPackage, new PackagePath("c:\\foo", "bar", PackageReferenceType.PackagesConfig)) }; var publishedDate = new DateTimeOffset(2018, 2, 19, 11, 12, 7, TimeSpan.Zero); var latest = new PackageSearchMedatadata(fooPackage, new PackageSource("https://somewhere"), publishedDate, null); var updates = new PackageLookupResult(VersionChange.Major, latest, null, null); return(new PackageUpdateSet(updates, packages)); }
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 PackageSearchMedatadata(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 UpdateSet(PackageReferenceType refType) { var fooPackage = new PackageIdentity("foo", new NuGetVersion(1, 2, 3)); var path = new PackagePath("c:\\foo", "bar", refType); var packages = new[] { new PackageInProject(fooPackage, path, null) }; var latest = new PackageSearchMedatadata(fooPackage, new PackageSource(NuGetConstants.V3FeedUrl), null, null); var updates = new PackageLookupResult(VersionChange.Major, latest, null, null); return(new PackageUpdateSet(updates, packages)); }
private static PackageUpdateSet MakeUpdateSet(string packageId, string packageVersion, PackageDependency upstream = null) { var currentPackages = new List <PackageInProject> { new PackageInProject(packageId, packageVersion, PathToProjectOne()), new PackageInProject(packageId, packageVersion, PathToProjectTwo()) }; var majorUpdate = Metadata(packageId, packageVersion, upstream); var lookupResult = new PackageLookupResult(VersionChange.Major, majorUpdate, null, null); var updates = new PackageUpdateSet(lookupResult, currentPackages); return(updates); }
private static PackageUpdateSet MakeUpdateSet() { var currentPackages = new List <PackageInProject> { new PackageInProject("id", "1.0.0", new PackagePath("base", "rel", PackageReferenceType.ProjectFile)), new PackageInProject("id", "1.0.0", new PackagePath("base", "rel", PackageReferenceType.ProjectFile)), }; var majorUpdate = Metadata("id", "1.0.0", null); var lookupResult = new PackageLookupResult(VersionChange.Major, majorUpdate, null, null); var updates = new PackageUpdateSet(lookupResult, currentPackages); return(updates); }
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 PackageSearchMedatadata(matchId, new PackageSource("http://none"), pubDate, null); var updates = new PackageLookupResult(VersionChange.Major, match, null, null); return new PackageUpdateSet(updates, currentPackages); }
private 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 PackageSearchMedatadata(new PackageIdentity("foo", matchVersion), "ASource", pubDate); var updates = new PackageLookupResult(VersionChange.Major, match, null, null); return(new PackageUpdateSet(updates, currentPackages)); }
private PackageUpdateSet UpdateBarFromTwoVersions() { var newPackage = LatestVersionOfPackageBar(); 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 PackageSearchMedatadata(matchId, "ASource", DateTimeOffset.Now); var updates = new PackageLookupResult(VersionChange.Major, match, null, null); return(new PackageUpdateSet(updates, currentPackages)); }
public static PackageUpdateSet MakeUpdateSet(string packageName, string version = "1.2.3", PackageReferenceType packageRefType = PackageReferenceType.ProjectFile) { var packageId = new PackageIdentity(packageName, new NuGetVersion(version)); var latest = new PackageSearchMedatadata( packageId, 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)); }
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)); }