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))); }
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); } } } } }