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);
        }
Exemple #2
0
        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);
        }
Exemple #5
0
        public void ResolveSafeVersionReturnsNullIfEmptyPackages()
        {
            // Act
            var package = PackageRepositoryExtensions.ResolveSafeVersion(Enumerable.Empty <IPackage>());

            // Assert
            Assert.Null(package);
        }
Exemple #6
0
        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();
        }
Exemple #10
0
        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);
        }
Exemple #11
0
        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;
            }
        }
Exemple #12
0
        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);
        }
Exemple #13
0
 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));
 }