public void GetUpdatesReturnPackagesUseCorrectConstraintsCorrespondingToIds() { // Arrange var sourceRepository = new MockPackageRepository(); sourceRepository.AddPackage(PackageUtility.CreatePackage("A", "1.0", new string[] { "hello" })); sourceRepository.AddPackage(PackageUtility.CreatePackage("A", "2.0", new string[] { "hello" })); sourceRepository.AddPackage(PackageUtility.CreatePackage("A", "3.0", new string[] { "hello" })); sourceRepository.AddPackage(PackageUtility.CreatePackage("A", "3.0-alpha", new string[] { "hello" })); sourceRepository.AddPackage(PackageUtility.CreatePackage("B", "1.0-alpha", new string[] { "hello" })); sourceRepository.AddPackage(PackageUtility.CreatePackage("B", "2.0", new string[] { "hello" })); var packages = new IPackage[] { PackageUtility.CreatePackage("A", "1.5"), PackageUtility.CreatePackage("B", "1.0") }; // Act var foundPackages = PackageRepositoryExtensions.GetUpdates( sourceRepository, packages, includePrerelease: true, includeAllVersions: false, targetFrameworks: Enumerable.Empty <FrameworkName>(), versionConstraints: new[] { VersionUtility.ParseVersionSpec("(0.0,3.0)"), VersionUtility.ParseVersionSpec("(2.0,)") } ).ToList(); // Assert Assert.Equal(1, foundPackages.Count); Assert.Equal("A", foundPackages[0].Id); Assert.Equal(new SemanticVersion("3.0-alpha"), foundPackages[0].Version); }
private IPackage TryGetPackage(IPackageRepository repository, string packageId, SemanticVersion packageVersion) { IPackage package = null; logger.LogInfo(UIResources.NG_LocatingPackages, packageId); IList <IPackage> packages = PackageRepositoryExtensions.FindPackagesById(repository, packageId).ToList(); ListPackages(packages); if (packages.Count == 0) { logger.LogError(UIResources.NG_ERROR_PackageNotFound, packageId); } else { if (packageVersion == null) { package = SelectLatestVersion(packages); } else { package = packages.FirstOrDefault(p => p.Version == packageVersion); if (package == null) { logger.LogError(UIResources.NG_ERROR_PackageVersionNotFound, packageVersion); } } } return(package); }
public void GetUpdatesThrowsIfPackagdIdsAndVersionConstraintsHaveDifferentNumberOfElements() { // Arrange var sourceRepository = new MockPackageRepository(); sourceRepository.AddPackage(PackageUtility.CreatePackage("A", "1.0", new string[] { "hello" })); sourceRepository.AddPackage(PackageUtility.CreatePackage("A", "2.0", new string[] { "hello" })); sourceRepository.AddPackage(PackageUtility.CreatePackage("A", "3.0", new string[] { "hello" })); sourceRepository.AddPackage(PackageUtility.CreatePackage("A", "3.0-alpha", new string[] { "hello" })); sourceRepository.AddPackage(PackageUtility.CreatePackage("B", "1.0-alpha", new string[] { "hello" })); sourceRepository.AddPackage(PackageUtility.CreatePackage("B", "2.0", new string[] { "hello" })); var packages = new IPackage[] { PackageUtility.CreatePackage("A", "1.5"), PackageUtility.CreatePackage("B", "1.0") }; // Act Assert.Throws <ArgumentException>(() => PackageRepositoryExtensions.GetUpdates( sourceRepository, packages, includePrerelease: true, includeAllVersions: false, targetFrameworks: Enumerable.Empty <FrameworkName>(), versionConstraints: new[] { VersionUtility.ParseVersionSpec("(2.0,)") } )); }
public void GetUpdatesReturnAllPackageVersionsWhenFlagIsSpecified() { // Arrange var sourceRepository = new MockPackageRepository(); sourceRepository.AddPackage(PackageUtility.CreatePackage("A", "1.0", new string[] { "hello" })); sourceRepository.AddPackage(PackageUtility.CreatePackage("A", "2.0", new string[] { "hello" })); sourceRepository.AddPackage(PackageUtility.CreatePackage("A", "3.0", new string[] { "hello" })); sourceRepository.AddPackage(PackageUtility.CreatePackage("A", "3.0-alpha", new string[] { "hello" })); var packages = new IPackage[] { PackageUtility.CreatePackage("A", "1.5") }; // Act var foundPackages = PackageRepositoryExtensions.GetUpdates(sourceRepository, packages, includePrerelease: true, targetFrameworks: Enumerable.Empty <FrameworkName>(), includeAllVersions: true).ToList(); // Assert Assert.Equal(3, foundPackages.Count); Assert.Equal("A", foundPackages[0].Id); Assert.Equal(new SemanticVersion("2.0"), foundPackages[0].Version); Assert.Equal("A", foundPackages[1].Id); Assert.Equal(new SemanticVersion("3.0"), foundPackages[1].Version); Assert.Equal("A", foundPackages[2].Id); Assert.Equal(new SemanticVersion("3.0-alpha"), foundPackages[2].Version); }
public void ResolveSafeVersionReturnsNullIfEmptyPackages() { // Act var package = PackageRepositoryExtensions.ResolveSafeVersion(Enumerable.Empty <IPackage>()); // Assert Assert.Null(package); }
public void ResolveSafeVersionReturnsNullIfPackagesNull() { // Act var package = PackageRepositoryExtensions.ResolveSafeVersion(null); // Assert Assert.Null(package); }
public IPackage GetUpdate(IPackage package) { //var algo = // ((DataServicePackageRepository) _projectManager.SourceRepository).GetUpdates( // LocalRepository.GetPackages(), true, true, new List<FrameworkName>(), new List<IVersionSpec>()); var packages = PackageRepositoryExtensions.GetUpdates(this.SourceRepository, this.LocalRepository.GetPackages(), true, true); return(packages.FirstOrDefault(x => x.Id == package.Id)); }
public void FindPackagesByIdUsesPackageLookupIfAvailable() { // Arrange var repository = new Mock <IPackageLookup>(); repository.Setup(p => p.FindPackagesById("A")).Returns(new IPackage[0]).Verifiable(); // Act PackageRepositoryExtensions.FindPackagesById(repository.As <IPackageRepository>().Object, "A"); // Assert repository.Verify(); }
public void ExistsMethodUsesIPackageLookupIfUnderlyingRepositorySupportsIt() { // Arrange var repository = new Mock <IPackageRepository>(MockBehavior.Strict); repository.As <IPackageLookup>() .Setup(p => p.Exists("A", new SemanticVersion("1.0"))) .Returns(true) .Verifiable(); // Act bool result = PackageRepositoryExtensions.Exists(repository.Object, "A", new SemanticVersion("1.0")); // Assert Assert.True(result); repository.Verify(); }
public void ResolveSafeVersionReturnsHighestBuildAndRevisionWithLowestMajorAndMinor() { var packages = new[] { PackageUtility.CreatePackage("A", "0.9"), PackageUtility.CreatePackage("A", "0.9.3"), PackageUtility.CreatePackage("A", "1.0"), PackageUtility.CreatePackage("A", "1.0.2"), PackageUtility.CreatePackage("A", "1.0.12"), PackageUtility.CreatePackage("A", "1.0.13"), }; // Act var package = PackageRepositoryExtensions.ResolveSafeVersion(packages); // Assert Assert.NotNull(package); Assert.Equal("A", package.Id); Assert.Equal(new SemanticVersion("0.9.3"), package.Version); }
public void FindPackagesByIdRecognizeICultureAwareRepositoryInterface() { var turkeyCulture = new CultureInfo("tr-TR"); string smallPackageName = "YUI".ToLower(turkeyCulture); // Arrange var packages = new IPackage[] { PackageUtility.CreatePackage("YUI"), PackageUtility.CreatePackage("DUI") }; var repository = new Mock <IPackageRepository>(); repository.Setup(p => p.GetPackages()).Returns(packages.AsQueryable()); var cultureRepository = repository.As <ICultureAwareRepository>().Setup(p => p.Culture).Returns(turkeyCulture); var savedCulture = Thread.CurrentThread.CurrentCulture; try { // simulate running on Turkish locale Thread.CurrentThread.CurrentCulture = turkeyCulture; // Act // notice the lowercase Turkish I character in the packageId to search for var foundPackages = PackageRepositoryExtensions.FindPackagesById(repository.Object, "yuı").ToList(); // Assert Assert.Equal(1, foundPackages.Count); Assert.Equal("YUI", foundPackages[0].Id); } finally { // restore culture Thread.CurrentThread.CurrentCulture = savedCulture; } }
public void GetUpdatesReturnPackageWhenSourcePackageHasNullTargetFrameworkInToolsFolder() { // Arrange var sourceRepository = new MockPackageRepository(); sourceRepository.AddPackage(PackageUtility.CreatePackage("A", "1.0", new string[] { "hello" })); sourceRepository.AddPackage(PackageUtility.CreatePackage("A", "2.0", new string[] { "hello", "world" }, tools: new string[] { "build\\install.ps1" })); var packages = new IPackage[] { PackageUtility.CreatePackage("A", "1.5") }; // Act var foundPackages = PackageRepositoryExtensions.GetUpdates(sourceRepository, packages, includePrerelease: true, targetFrameworks: new [] { new FrameworkName("NETFramework, Version=4.5") }, includeAllVersions: true).ToList(); // Assert Assert.Equal(1, foundPackages.Count); Assert.Equal("A", foundPackages[0].Id); Assert.Equal(new SemanticVersion("2.0"), foundPackages[0].Version); }
public static List <IPackage> Select(int start, int number, IPackageRepository repo, string text = "Microsoft", bool prerelease = false) { return(PackageRepositoryExtensions.Search(repo, text, prerelease).Skip(start).Take(number).ToList()); }
public IQueryable <IPackage> GetPackagesWithUpdates() { return(GetPackages(PackageRepositoryExtensions.GetUpdates(this.LocalRepository, this.SourceRepository.GetPackages(), true, true).AsQueryable <IPackage>(), false)); }