Пример #1
0
        public async Task TestPowerShellAutocompleteResourceForPackageVersions(string SourceUrl)
        {
            SourceRepository       repo     = GetSourceRepository(SourceUrl);
            PSAutoCompleteResource resource = await repo.GetResource <PSAutoCompleteResource>();

            //Check if we are able to obtain a resource
            Assert.True(resource != null);
            // Check if non zero version count is returned. *TODOS : Use a standard test packages whose version count will be fixed
            IEnumerable <NuGetVersion> versions = await resource.VersionStartsWith("Nuget.core", "1", true, CancellationToken.None);

            Assert.True(versions.Count() == 13);
        }
Пример #2
0
        public async Task TestPowerShellAutocompleteResourceForPackageIds(string SourceUrl)
        {
            SourceRepository       repo     = GetSourceRepository(SourceUrl);
            PSAutoCompleteResource resource = await repo.GetResource <PSAutoCompleteResource>();

            //Check if we are able to obtain a resource
            Assert.True(resource != null);
            IEnumerable <string> searchResults = await resource.IdStartsWith("Elmah", true, CancellationToken.None);

            // Check if non empty search result is returned.
            Assert.True(searchResults.Count() > 0);
            //Make sure that the results starts with the given prefix.
            Assert.True(searchResults.All(p => p.StartsWith("Elmah", StringComparison.OrdinalIgnoreCase)));
        }
Пример #3
0
        /// <summary>
        /// Get IPowerShellPackage from the remote package source
        /// </summary>
        /// <param name="autoCompleteResource"></param>
        /// <param name="id"></param>
        /// <returns></returns>
        private IPowerShellPackage GetIPowerShellPackageFromRemoteSource(PSAutoCompleteResource autoCompleteResource, string id)
        {
            IEnumerable <NuGetVersion> versions = Enumerable.Empty <NuGetVersion>();

            try
            {
                Task <IEnumerable <NuGetVersion> > versionTask = autoCompleteResource.VersionStartsWith(id, Version, IncludePrerelease.IsPresent, CancellationToken.None);
                versions = versionTask.Result;
            }
            catch (Exception) { }

            IPowerShellPackage package = new PowerShellPackage();

            package.Id = id;
            if (AllVersions.IsPresent)
            {
                if (versions != null && versions.Any())
                {
                    package.Versions = versions.OrderByDescending(v => v);
                    LegacyNuGet.SemanticVersion sVersion;
                    LegacyNuGet.SemanticVersion.TryParse(package.Versions.FirstOrDefault().ToNormalizedString(), out sVersion);
                    package.Version = sVersion;
                }
            }
            else
            {
                NuGetVersion nVersion = null;
                if (versions != null && versions.Any())
                {
                    nVersion = versions.OrderByDescending(v => v).FirstOrDefault();
                }

                if (nVersion != null)
                {
                    package.Versions = new List <NuGetVersion>()
                    {
                        nVersion
                    };
                    LegacyNuGet.SemanticVersion sVersion;
                    LegacyNuGet.SemanticVersion.TryParse(nVersion.ToNormalizedString(), out sVersion);
                    package.Version = sVersion;
                }
            }
            return(package);
        }
Пример #4
0
        protected override void ProcessRecordCore()
        {
            Preprocess();

            PSAutoCompleteResource autoCompleteResource = ActiveSourceRepository.GetResource <PSAutoCompleteResource>();
            IEnumerable <string>   packageIds           = Enumerable.Empty <string>();

            try
            {
                Task <IEnumerable <string> > task = autoCompleteResource.IdStartsWith(Id, IncludePrerelease.IsPresent, CancellationToken.None);
                packageIds = task.Result;
            }
            catch (Exception) { }

            if (!ExactMatch.IsPresent)
            {
                List <IPowerShellPackage> packages = new List <IPowerShellPackage>();
                foreach (string id in packageIds)
                {
                    IPowerShellPackage package = GetIPowerShellPackageFromRemoteSource(autoCompleteResource, id);
                    if (package.Versions != null && package.Versions.Any())
                    {
                        packages.Add(package);
                    }
                }
                WriteObject(packages, enumerateCollection: true);
            }
            else
            {
                if (packageIds.Any())
                {
                    string packageId = packageIds.Where(p => string.Equals(p, Id, StringComparison.OrdinalIgnoreCase)).FirstOrDefault();
                    if (!string.IsNullOrEmpty(packageId))
                    {
                        IPowerShellPackage package = GetIPowerShellPackageFromRemoteSource(autoCompleteResource, packageId);
                        if (package.Versions != null && package.Versions.Any())
                        {
                            WriteObject(package);
                        }
                    }
                }
            }
        }