rework the rules

This commit is contained in:
Brendan Forster
2015-07-17 07:53:18 +09:30
parent 8596019e14
commit e4ec54d09a
2 changed files with 29 additions and 11 deletions
+23 -8
View File
@@ -1159,6 +1159,24 @@ namespace Octokit.Tests.Clients
Arg.Is<Dictionary<string, string>>(d => d["q"] == "something+repo:octokit/octokit.net"));
}
[Fact]
public async Task ErrorOccursWhenSpecifyingInvalidFormatForRepos()
{
var connection = Substitute.For<IApiConnection>();
var client = new SearchClient(connection);
var request = new SearchIssuesRequest("windows");
request.Repos = new Collection<string> {
"haha-business"
};
request.SortField = IssueSearchSort.Created;
request.Order = SortDirection.Descending;
await Assert.ThrowsAsync<RepositoryFormatException>(
async () => await client.SearchIssues(request));
}
[Fact]
public void TestingTheRepoAndUserAndLabelQualifier()
{
@@ -1450,7 +1468,7 @@ namespace Octokit.Tests.Clients
connection.Received().Get<SearchCodeResult>(
Arg.Is<Uri>(u => u.ToString() == "search/code"),
Arg.Is<Dictionary<string, string>>(d => d["q"] == "something+repo:octokit.net"));
Arg.Is<Dictionary<string, string>>(d => d["q"] == "something+repo:octokit/octokit.net"));
}
[Fact]
@@ -1482,7 +1500,7 @@ namespace Octokit.Tests.Clients
connection.Received().Get<SearchCodeResult>(
Arg.Is<Uri>(u => u.ToString() == "search/code"),
Arg.Is<Dictionary<string, string>>(d =>
d["q"] == "something+path:tools/FAKE.core+extension:fs+repo:octokit.net"));
d["q"] == "something+path:tools/FAKE.core+extension:fs+repo:octokit/octokit.net"));
}
[Fact]
@@ -1491,19 +1509,16 @@ namespace Octokit.Tests.Clients
var connection = Substitute.For<IApiConnection>();
var client = new SearchClient(connection);
var request = new SearchIssuesRequest("windows");
var request = new SearchCodeRequest("windows");
request.Repos = new Collection<string> {
"haha-business"
};
request.SortField = IssueSearchSort.Created;
request.Order = SortDirection.Descending;
await Assert.ThrowsAsync<ArgumentException>(
async () => await client.SearchIssues(request));
await Assert.ThrowsAsync<RepositoryFormatException>(
async () => await client.SearchCode(request));
}
}
}
}
+6 -3
View File
@@ -102,11 +102,14 @@ namespace Octokit
yield return new String(letters, wordStartIndex, letters.Length - wordStartIndex);
}
static Regex nameWithOwner = new Regex("[a-zA-Z.]{1,}/[a-zA-Z.]{1,}"
// the rule:
// Username may only contain alphanumeric characters or single hyphens
// and cannot begin or end with a hyphen
static readonly Regex nameWithOwner = new Regex("[a-z0-9.-]{1,}/[a-z0-9.-]{1,}",
#if (!PORTABLE && !NETFX_CORE)
, RegexOptions.Compiled
RegexOptions.Compiled |
#endif
);
RegexOptions.IgnoreCase);
internal static bool IsNameWithOwnerFormat(this string input)
{