From 70fe7269541898f0bacc436b154b55ccae081451 Mon Sep 17 00:00:00 2001 From: Ben McMorran Date: Sun, 31 Mar 2019 20:55:07 -0700 Subject: [PATCH] Correctly support language filter in repo search (#1951) * Correctly support language filter in repo search * Fix failing client test * Use the correct language code for C++ --- Octokit.Tests/Clients/SearchClientTests.cs | 2 +- Octokit.Tests/Models/SearchRepositoryRequestTests.cs | 8 ++++++++ Octokit/Models/Request/SearchRepositoriesRequest.cs | 4 ++-- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/Octokit.Tests/Clients/SearchClientTests.cs b/Octokit.Tests/Clients/SearchClientTests.cs index 4260a8b0..93da7a4d 100644 --- a/Octokit.Tests/Clients/SearchClientTests.cs +++ b/Octokit.Tests/Clients/SearchClientTests.cs @@ -463,7 +463,7 @@ namespace Octokit.Tests.Clients request.Language = Language.Ruby; client.SearchRepo(request); connection.Received().Get(Arg.Is(u => u.ToString() == "search/repositories"), - Arg.Is>(d => d["q"] == "github+language:Ruby")); + Arg.Is>(d => d["q"] == "github+language:ruby")); } [Fact] diff --git a/Octokit.Tests/Models/SearchRepositoryRequestTests.cs b/Octokit.Tests/Models/SearchRepositoryRequestTests.cs index e49d9d15..c01c7288 100644 --- a/Octokit.Tests/Models/SearchRepositoryRequestTests.cs +++ b/Octokit.Tests/Models/SearchRepositoryRequestTests.cs @@ -25,5 +25,13 @@ public class SearchRepositoryRequestTests Assert.True(string.IsNullOrWhiteSpace(request.Sort)); Assert.False(request.Parameters.ContainsKey("sort")); } + + [Fact] + public void LanguageUsesParameterTranslation() + { + var request = new SearchRepositoriesRequest() { Language = Language.CPlusPlus }; + var result = request.MergedQualifiers(); + Assert.Contains(result, x => string.Equals(x, "language:cpp")); + } } } diff --git a/Octokit/Models/Request/SearchRepositoriesRequest.cs b/Octokit/Models/Request/SearchRepositoriesRequest.cs index 78c7d889..d9fe40e6 100644 --- a/Octokit/Models/Request/SearchRepositoriesRequest.cs +++ b/Octokit/Models/Request/SearchRepositoriesRequest.cs @@ -148,7 +148,7 @@ namespace Octokit if (Language != null) { - parameters.Add(string.Format(CultureInfo.InvariantCulture, "language:{0}", Language)); + parameters.Add(string.Format(CultureInfo.InvariantCulture, "language:{0}", Language.ToParameter())); } if (User.IsNotBlank()) @@ -557,7 +557,7 @@ namespace Octokit ColdFusion, CommonLisp, Coq, - [Parameter(Value = "C++")] + [Parameter(Value = "cpp")] CPlusPlus, [Parameter(Value = "CSharp")] CSharp,