mirror of
https://github.com/zoriya/octokit.net.git
synced 2026-06-07 12:26:18 +00:00
Merge branch 'master' into search-users
This commit is contained in:
@@ -274,7 +274,7 @@ namespace Octokit.Tests.Clients
|
||||
//get repos where the Description contains rails and user/org is 'github'
|
||||
var request = new SearchRepositoriesRequest("rails");
|
||||
request.Sort = RepoSearchSort.Forks;
|
||||
|
||||
|
||||
client.SearchRepo(request);
|
||||
|
||||
connection.Received().GetAll<Repository>(Arg.Is<Uri>(u => u.ToString() == "search/repositories"), Arg.Any<Dictionary<string, string>>());
|
||||
@@ -298,6 +298,522 @@ namespace Octokit.Tests.Clients
|
||||
var client = new SearchClient(Substitute.For<IApiConnection>());
|
||||
AssertEx.Throws<ArgumentNullException>(async () => await client.SearchIssues(null));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestingTheTermParameter()
|
||||
{
|
||||
var connection = Substitute.For<IApiConnection>();
|
||||
var client = new SearchClient(connection);
|
||||
var request = new SearchIssuesRequest("pub");
|
||||
|
||||
client.SearchIssues(request);
|
||||
|
||||
connection.Received().GetAll<Issue>(
|
||||
Arg.Is<Uri>(u => u.ToString() == "search/issues"),
|
||||
Arg.Is<Dictionary<string, string>>(d => d["q"] == "pub"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestingTheSortParameter()
|
||||
{
|
||||
var connection = Substitute.For<IApiConnection>();
|
||||
var client = new SearchClient(connection);
|
||||
var request = new SearchIssuesRequest("something");
|
||||
request.SortField = IssueSearchSort.Comments;
|
||||
|
||||
client.SearchIssues(request);
|
||||
|
||||
connection.Received().GetAll<Issue>(
|
||||
Arg.Is<Uri>(u => u.ToString() == "search/issues"),
|
||||
Arg.Is<Dictionary<string, string>>(d =>
|
||||
d["sort"] == "comments"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestingTheOrderParameter()
|
||||
{
|
||||
var connection = Substitute.For<IApiConnection>();
|
||||
var client = new SearchClient(connection);
|
||||
var request = new SearchIssuesRequest("something");
|
||||
request.SortField = IssueSearchSort.Updated;
|
||||
request.Order = SortDirection.Ascending;
|
||||
|
||||
client.SearchIssues(request);
|
||||
|
||||
connection.Received().GetAll<Issue>(
|
||||
Arg.Is<Uri>(u => u.ToString() == "search/issues"),
|
||||
Arg.Is<Dictionary<string, string>>(d =>
|
||||
d["sort"] == "updated" &&
|
||||
d["order"] == "asc"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestingTheDefaultOrderParameter()
|
||||
{
|
||||
var connection = Substitute.For<IApiConnection>();
|
||||
var client = new SearchClient(connection);
|
||||
var request = new SearchIssuesRequest("something");
|
||||
|
||||
client.SearchIssues(request);
|
||||
|
||||
connection.Received().GetAll<Issue>(
|
||||
Arg.Is<Uri>(u => u.ToString() == "search/issues"),
|
||||
Arg.Is<Dictionary<string, string>>(d =>
|
||||
d["order"] == "desc"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestingTheInQualifier()
|
||||
{
|
||||
var connection = Substitute.For<IApiConnection>();
|
||||
var client = new SearchClient(connection);
|
||||
var request = new SearchIssuesRequest("something");
|
||||
request.In = new[] { IssueInQualifier.Comment };
|
||||
|
||||
client.SearchIssues(request);
|
||||
|
||||
connection.Received().GetAll<Issue>(
|
||||
Arg.Is<Uri>(u=>u.ToString() == "search/issues"),
|
||||
Arg.Is<Dictionary<string, string>>(d=>d["q"] == "something+in:comment"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestingTheInQualifiers_Multiple()
|
||||
{
|
||||
var connection = Substitute.For<IApiConnection>();
|
||||
var client = new SearchClient(connection);
|
||||
var request = new SearchIssuesRequest("something");
|
||||
request.In = new[] { IssueInQualifier.Body, IssueInQualifier.Title };
|
||||
|
||||
client.SearchIssues(request);
|
||||
|
||||
connection.Received().GetAll<Issue>(
|
||||
Arg.Is<Uri>(u => u.ToString() == "search/issues"),
|
||||
Arg.Is<Dictionary<string, string>>(d => d["q"] == "something+in:body,title"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestingTheTypeQualifier_Issue()
|
||||
{
|
||||
var connection = Substitute.For<IApiConnection>();
|
||||
var client = new SearchClient(connection);
|
||||
var request = new SearchIssuesRequest("something");
|
||||
request.Type = IssueTypeQualifier.Issue;
|
||||
|
||||
client.SearchIssues(request);
|
||||
|
||||
connection.Received().GetAll<Issue>(
|
||||
Arg.Is<Uri>(u => u.ToString() == "search/issues"),
|
||||
Arg.Is<Dictionary<string, string>>(d => d["q"] == "something+type:issue"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestingTheTypeQualifier_PR()
|
||||
{
|
||||
var connection = Substitute.For<IApiConnection>();
|
||||
var client = new SearchClient(connection);
|
||||
var request = new SearchIssuesRequest("something");
|
||||
request.Type = IssueTypeQualifier.PR;
|
||||
|
||||
client.SearchIssues(request);
|
||||
|
||||
connection.Received().GetAll<Issue>(
|
||||
Arg.Is<Uri>(u => u.ToString() == "search/issues"),
|
||||
Arg.Is<Dictionary<string, string>>(d => d["q"] == "something+type:pr"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestingTheAuthorQualifier()
|
||||
{
|
||||
var connection = Substitute.For<IApiConnection>();
|
||||
var client = new SearchClient(connection);
|
||||
var request = new SearchIssuesRequest("something");
|
||||
request.Author = "alfhenrik";
|
||||
|
||||
client.SearchIssues(request);
|
||||
|
||||
connection.Received().GetAll<Issue>(
|
||||
Arg.Is<Uri>(u => u.ToString() == "search/issues"),
|
||||
Arg.Is<Dictionary<string, string>>(d => d["q"] == "something+author:alfhenrik"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestingTheAssigneeQualifier()
|
||||
{
|
||||
var connection = Substitute.For<IApiConnection>();
|
||||
var client = new SearchClient(connection);
|
||||
var request = new SearchIssuesRequest("something");
|
||||
request.Assignee = "alfhenrik";
|
||||
|
||||
client.SearchIssues(request);
|
||||
|
||||
connection.Received().GetAll<Issue>(
|
||||
Arg.Is<Uri>(u => u.ToString() == "search/issues"),
|
||||
Arg.Is<Dictionary<string, string>>(d => d["q"] == "something+assignee:alfhenrik"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestingTheMentionsQualifier()
|
||||
{
|
||||
var connection = Substitute.For<IApiConnection>();
|
||||
var client = new SearchClient(connection);
|
||||
var request = new SearchIssuesRequest("something");
|
||||
request.Mentions = "alfhenrik";
|
||||
|
||||
client.SearchIssues(request);
|
||||
|
||||
connection.Received().GetAll<Issue>(
|
||||
Arg.Is<Uri>(u => u.ToString() == "search/issues"),
|
||||
Arg.Is<Dictionary<string, string>>(d => d["q"] == "something+mentions:alfhenrik"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestingTheCommenterQualifier()
|
||||
{
|
||||
var connection = Substitute.For<IApiConnection>();
|
||||
var client = new SearchClient(connection);
|
||||
var request = new SearchIssuesRequest("something");
|
||||
request.Commenter = "alfhenrik";
|
||||
|
||||
client.SearchIssues(request);
|
||||
|
||||
connection.Received().GetAll<Issue>(
|
||||
Arg.Is<Uri>(u => u.ToString() == "search/issues"),
|
||||
Arg.Is<Dictionary<string, string>>(d => d["q"] == "something+commenter:alfhenrik"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestingTheInvolvesQualifier()
|
||||
{
|
||||
var connection = Substitute.For<IApiConnection>();
|
||||
var client = new SearchClient(connection);
|
||||
var request = new SearchIssuesRequest("something");
|
||||
request.Involves = "alfhenrik";
|
||||
|
||||
client.SearchIssues(request);
|
||||
|
||||
connection.Received().GetAll<Issue>(
|
||||
Arg.Is<Uri>(u => u.ToString() == "search/issues"),
|
||||
Arg.Is<Dictionary<string, string>>(d => d["q"] == "something+involves:alfhenrik"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestingTheStateQualifier_Open()
|
||||
{
|
||||
var connection = Substitute.For<IApiConnection>();
|
||||
var client = new SearchClient(connection);
|
||||
var request = new SearchIssuesRequest("something");
|
||||
request.State = ItemState.Open;
|
||||
|
||||
client.SearchIssues(request);
|
||||
|
||||
connection.Received().GetAll<Issue>(
|
||||
Arg.Is<Uri>(u => u.ToString() == "search/issues"),
|
||||
Arg.Is<Dictionary<string, string>>(d => d["q"] == "something+state:Open"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestingTheStateQualifier_Closed()
|
||||
{
|
||||
var connection = Substitute.For<IApiConnection>();
|
||||
var client = new SearchClient(connection);
|
||||
var request = new SearchIssuesRequest("something");
|
||||
request.State = ItemState.Closed;
|
||||
|
||||
client.SearchIssues(request);
|
||||
|
||||
connection.Received().GetAll<Issue>(
|
||||
Arg.Is<Uri>(u => u.ToString() == "search/issues"),
|
||||
Arg.Is<Dictionary<string, string>>(d => d["q"] == "something+state:Closed"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestingTheLabelsQualifier()
|
||||
{
|
||||
var connection = Substitute.For<IApiConnection>();
|
||||
var client = new SearchClient(connection);
|
||||
var request = new SearchIssuesRequest("something");
|
||||
request.Labels = new[] { "bug" };
|
||||
|
||||
client.SearchIssues(request);
|
||||
|
||||
connection.Received().GetAll<Issue>(
|
||||
Arg.Is<Uri>(u => u.ToString() == "search/issues"),
|
||||
Arg.Is<Dictionary<string, string>>(d => d["q"] == "something+label:bug"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestingTheLabelsQualifier_Multiple()
|
||||
{
|
||||
var connection = Substitute.For<IApiConnection>();
|
||||
var client = new SearchClient(connection);
|
||||
var request = new SearchIssuesRequest("something");
|
||||
request.Labels = new[] { "bug", "feature" };
|
||||
|
||||
client.SearchIssues(request);
|
||||
|
||||
connection.Received().GetAll<Issue>(
|
||||
Arg.Is<Uri>(u => u.ToString() == "search/issues"),
|
||||
Arg.Is<Dictionary<string, string>>(d => d["q"] == "something+label:bug+label:feature"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestingTheLanguageQualifier()
|
||||
{
|
||||
var connection = Substitute.For<IApiConnection>();
|
||||
var client = new SearchClient(connection);
|
||||
var request = new SearchIssuesRequest("something");
|
||||
request.Language = Language.CSharp;
|
||||
|
||||
client.SearchIssues(request);
|
||||
|
||||
connection.Received().GetAll<Issue>(
|
||||
Arg.Is<Uri>(u => u.ToString() == "search/issues"),
|
||||
Arg.Is<Dictionary<string, string>>(d => d["q"] == "something+language:CSharp"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestingTheCreatedQualifier_GreaterThan()
|
||||
{
|
||||
var connection = Substitute.For<IApiConnection>();
|
||||
var client = new SearchClient(connection);
|
||||
var request = new SearchIssuesRequest("something");
|
||||
request.Created = DateRange.GreaterThan(new DateTime(2014, 1, 1));
|
||||
|
||||
client.SearchIssues(request);
|
||||
|
||||
connection.Received().GetAll<Issue>(
|
||||
Arg.Is<Uri>(u => u.ToString() == "search/issues"),
|
||||
Arg.Is<Dictionary<string, string>>(d => d["q"] == "something+created:>2014-01-01"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestingTheCreatedQualifier_GreaterThanOrEquals()
|
||||
{
|
||||
var connection = Substitute.For<IApiConnection>();
|
||||
var client = new SearchClient(connection);
|
||||
var request = new SearchIssuesRequest("something");
|
||||
request.Created = DateRange.GreaterThanOrEquals(new DateTime(2014, 1, 1));
|
||||
|
||||
client.SearchIssues(request);
|
||||
|
||||
connection.Received().GetAll<Issue>(
|
||||
Arg.Is<Uri>(u => u.ToString() == "search/issues"),
|
||||
Arg.Is<Dictionary<string, string>>(d => d["q"] == "something+created:>=2014-01-01"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestingTheCreatedQualifier_LessThan()
|
||||
{
|
||||
var connection = Substitute.For<IApiConnection>();
|
||||
var client = new SearchClient(connection);
|
||||
var request = new SearchIssuesRequest("something");
|
||||
request.Created = DateRange.LessThan(new DateTime(2014, 1, 1));
|
||||
|
||||
client.SearchIssues(request);
|
||||
|
||||
connection.Received().GetAll<Issue>(
|
||||
Arg.Is<Uri>(u => u.ToString() == "search/issues"),
|
||||
Arg.Is<Dictionary<string, string>>(d => d["q"] == "something+created:<2014-01-01"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestingTheCreatedQualifier_LessThanOrEquals()
|
||||
{
|
||||
var connection = Substitute.For<IApiConnection>();
|
||||
var client = new SearchClient(connection);
|
||||
var request = new SearchIssuesRequest("something");
|
||||
request.Created = DateRange.LessThanOrEquals(new DateTime(2014, 1, 1));
|
||||
|
||||
client.SearchIssues(request);
|
||||
|
||||
connection.Received().GetAll<Issue>(
|
||||
Arg.Is<Uri>(u => u.ToString() == "search/issues"),
|
||||
Arg.Is<Dictionary<string, string>>(d => d["q"] == "something+created:<=2014-01-01"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestingTheUpdatedQualifier_GreaterThan()
|
||||
{
|
||||
var connection = Substitute.For<IApiConnection>();
|
||||
var client = new SearchClient(connection);
|
||||
var request = new SearchIssuesRequest("something");
|
||||
request.Updated = DateRange.GreaterThan(new DateTime(2014, 1, 1));
|
||||
|
||||
client.SearchIssues(request);
|
||||
|
||||
connection.Received().GetAll<Issue>(
|
||||
Arg.Is<Uri>(u => u.ToString() == "search/issues"),
|
||||
Arg.Is<Dictionary<string, string>>(d => d["q"] == "something+updated:>2014-01-01"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestingTheUpdatedQualifier_GreaterThanOrEquals()
|
||||
{
|
||||
var connection = Substitute.For<IApiConnection>();
|
||||
var client = new SearchClient(connection);
|
||||
var request = new SearchIssuesRequest("something");
|
||||
request.Updated = DateRange.GreaterThanOrEquals(new DateTime(2014, 1, 1));
|
||||
|
||||
client.SearchIssues(request);
|
||||
|
||||
connection.Received().GetAll<Issue>(
|
||||
Arg.Is<Uri>(u => u.ToString() == "search/issues"),
|
||||
Arg.Is<Dictionary<string, string>>(d => d["q"] == "something+updated:>=2014-01-01"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestingTheUpdatedQualifier_LessThan()
|
||||
{
|
||||
var connection = Substitute.For<IApiConnection>();
|
||||
var client = new SearchClient(connection);
|
||||
var request = new SearchIssuesRequest("something");
|
||||
request.Updated = DateRange.LessThan(new DateTime(2014, 1, 1));
|
||||
|
||||
client.SearchIssues(request);
|
||||
|
||||
connection.Received().GetAll<Issue>(
|
||||
Arg.Is<Uri>(u => u.ToString() == "search/issues"),
|
||||
Arg.Is<Dictionary<string, string>>(d => d["q"] == "something+updated:<2014-01-01"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestingTheUpdatedQualifier_LessThanOrEquals()
|
||||
{
|
||||
var connection = Substitute.For<IApiConnection>();
|
||||
var client = new SearchClient(connection);
|
||||
var request = new SearchIssuesRequest("something");
|
||||
request.Updated = DateRange.LessThanOrEquals(new DateTime(2014, 1, 1));
|
||||
|
||||
client.SearchIssues(request);
|
||||
|
||||
connection.Received().GetAll<Issue>(
|
||||
Arg.Is<Uri>(u => u.ToString() == "search/issues"),
|
||||
Arg.Is<Dictionary<string, string>>(d => d["q"] == "something+updated:<=2014-01-01"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestingTheCommentsQualifier_GreaterThan()
|
||||
{
|
||||
var connection = Substitute.For<IApiConnection>();
|
||||
var client = new SearchClient(connection);
|
||||
var request = new SearchIssuesRequest("something");
|
||||
request.Comments = Range.GreaterThan(10);
|
||||
|
||||
client.SearchIssues(request);
|
||||
|
||||
connection.Received().GetAll<Issue>(
|
||||
Arg.Is<Uri>(u => u.ToString() == "search/issues"),
|
||||
Arg.Is<Dictionary<string, string>>(d => d["q"] == "something+comments:>10"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestingTheCommentsQualifier_GreaterThanOrEqual()
|
||||
{
|
||||
var connection = Substitute.For<IApiConnection>();
|
||||
var client = new SearchClient(connection);
|
||||
var request = new SearchIssuesRequest("something");
|
||||
request.Comments = Range.GreaterThanOrEquals(10);
|
||||
|
||||
client.SearchIssues(request);
|
||||
|
||||
connection.Received().GetAll<Issue>(
|
||||
Arg.Is<Uri>(u => u.ToString() == "search/issues"),
|
||||
Arg.Is<Dictionary<string, string>>(d => d["q"] == "something+comments:>=10"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestingTheCommentsQualifier_LessThan()
|
||||
{
|
||||
var connection = Substitute.For<IApiConnection>();
|
||||
var client = new SearchClient(connection);
|
||||
var request = new SearchIssuesRequest("something");
|
||||
request.Comments = Range.LessThan(10);
|
||||
|
||||
client.SearchIssues(request);
|
||||
|
||||
connection.Received().GetAll<Issue>(
|
||||
Arg.Is<Uri>(u => u.ToString() == "search/issues"),
|
||||
Arg.Is<Dictionary<string, string>>(d => d["q"] == "something+comments:<10"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestingTheCommentsQualifier_LessThanOrEqual()
|
||||
{
|
||||
var connection = Substitute.For<IApiConnection>();
|
||||
var client = new SearchClient(connection);
|
||||
var request = new SearchIssuesRequest("something");
|
||||
request.Comments = Range.LessThanOrEquals(10);
|
||||
|
||||
client.SearchIssues(request);
|
||||
|
||||
connection.Received().GetAll<Issue>(
|
||||
Arg.Is<Uri>(u => u.ToString() == "search/issues"),
|
||||
Arg.Is<Dictionary<string, string>>(d => d["q"] == "something+comments:<=10"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestingTheCommentsQualifier_Range()
|
||||
{
|
||||
var connection = Substitute.For<IApiConnection>();
|
||||
var client = new SearchClient(connection);
|
||||
var request = new SearchIssuesRequest("something");
|
||||
request.Comments = new Range(10, 20);
|
||||
|
||||
client.SearchIssues(request);
|
||||
|
||||
connection.Received().GetAll<Issue>(
|
||||
Arg.Is<Uri>(u => u.ToString() == "search/issues"),
|
||||
Arg.Is<Dictionary<string, string>>(d => d["q"] == "something+comments:10..20"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestingTheUserQualifier()
|
||||
{
|
||||
var connection = Substitute.For<IApiConnection>();
|
||||
var client = new SearchClient(connection);
|
||||
var request = new SearchIssuesRequest("something");
|
||||
request.User = "alfhenrik";
|
||||
|
||||
client.SearchIssues(request);
|
||||
|
||||
connection.Received().GetAll<Issue>(
|
||||
Arg.Is<Uri>(u => u.ToString() == "search/issues"),
|
||||
Arg.Is<Dictionary<string, string>>(d => d["q"] == "something+user:alfhenrik"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestingTheRepoQualifier()
|
||||
{
|
||||
var connection = Substitute.For<IApiConnection>();
|
||||
var client = new SearchClient(connection);
|
||||
var request = new SearchIssuesRequest("something");
|
||||
request.Repo = "octokit.net";
|
||||
|
||||
client.SearchIssues(request);
|
||||
|
||||
connection.Received().GetAll<Issue>(
|
||||
Arg.Is<Uri>(u => u.ToString() == "search/issues"),
|
||||
Arg.Is<Dictionary<string, string>>(d => d["q"] == "something+repo:octokit.net"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestingTheRepoAndUserAndLabelQualifier()
|
||||
{
|
||||
var connection = Substitute.For<IApiConnection>();
|
||||
var client = new SearchClient(connection);
|
||||
var request = new SearchIssuesRequest("something");
|
||||
request.Repo = "octokit.net";
|
||||
request.User = "alfhenrik";
|
||||
request.Labels = new[] { "bug" };
|
||||
|
||||
client.SearchIssues(request);
|
||||
|
||||
connection.Received().GetAll<Issue>(
|
||||
Arg.Is<Uri>(u => u.ToString() == "search/issues"),
|
||||
Arg.Is<Dictionary<string, string>>(d => d["q"] ==
|
||||
"something+label:bug+user:alfhenrik+repo:octokit.net"));
|
||||
}
|
||||
}
|
||||
|
||||
public class TheSearchCodeMethod
|
||||
@@ -308,7 +824,9 @@ namespace Octokit.Tests.Clients
|
||||
var connection = Substitute.For<IApiConnection>();
|
||||
var client = new SearchClient(connection);
|
||||
client.SearchCode(new SearchCodeRequest("something"));
|
||||
connection.Received().GetAll<SearchCode>(Arg.Is<Uri>(u => u.ToString() == "search/code"), Arg.Any<Dictionary<string, string>>());
|
||||
connection.Received().GetAll<SearchCode>(
|
||||
Arg.Is<Uri>(u => u.ToString() == "search/code"),
|
||||
Arg.Any<Dictionary<string, string>>());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
||||
Reference in New Issue
Block a user