mirror of
https://github.com/zoriya/octokit.net.git
synced 2026-06-05 19:46:07 +00:00
Enable support for milestone-based issues queries (#1788)
* Added support for Milestone filter in SearchIssuesRequest * Fixed some styling issues to match with the style of the existing code * Wrap milestone value with double quotes as milestones can contain spaces * Allow milestone filter to contain double quotes * Ability to search by milestone exclusions * Moved the EscapeDoubleQuotes method to StringExtensions
This commit is contained in:
@@ -19,7 +19,8 @@ public class SearchIssuesRequestExclusionsTests
|
||||
{ "commenter:", (x,value) => x.Commenter = value },
|
||||
{ "involves:", (x,value) => x.Involves = value },
|
||||
{ "head:", (x,value) => x.Head = value },
|
||||
{ "base:", (x,value) => x.Base = value }
|
||||
{ "base:", (x,value) => x.Base = value },
|
||||
{ "milestone:", (x,value) => x.Milestone = value }
|
||||
};
|
||||
|
||||
foreach (var property in stringProperties)
|
||||
@@ -80,5 +81,25 @@ public class SearchIssuesRequestExclusionsTests
|
||||
|
||||
Assert.True(request.MergedQualifiers().Contains("-status:error"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void HandlesMilestoneAttributeWithoutQuotes()
|
||||
{
|
||||
var request = new SearchIssuesRequestExclusions();
|
||||
Assert.False(request.MergedQualifiers().Any(x => x.Contains("-milestone:")));
|
||||
|
||||
request.Milestone = "testMilestone";
|
||||
Assert.True(request.MergedQualifiers().Contains("-milestone:\"testMilestone\""));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void DoesntWrapMilestoneWithDoubleQuotesForQuotedMilestone()
|
||||
{
|
||||
var request = new SearchIssuesRequestExclusions();
|
||||
Assert.False(request.MergedQualifiers().Any(x => x.Contains("-milestone:")));
|
||||
|
||||
request.Milestone = "\"testMilestone\"";
|
||||
Assert.Contains<string>("-milestone:\"\\\"testMilestone\\\"\"", request.MergedQualifiers());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -41,7 +41,8 @@ public class SearchIssuesRequestTests
|
||||
{ "team:", (x,value) => x.Team = value },
|
||||
{ "head:", (x,value) => x.Head = value },
|
||||
{ "base:", (x,value) => x.Base = value },
|
||||
{ "user:", (x,value) => x.User = value }
|
||||
{ "user:", (x,value) => x.User = value },
|
||||
{ "milestone:", (x,value) => x.Milestone = value }
|
||||
};
|
||||
|
||||
foreach (var property in stringProperties)
|
||||
@@ -116,6 +117,26 @@ public class SearchIssuesRequestTests
|
||||
Assert.True(request.MergedQualifiers().Contains("label:label2"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void HandlesMilestoneAttributeWithoutQuotes()
|
||||
{
|
||||
var request = new SearchIssuesRequest("text");
|
||||
Assert.False(request.MergedQualifiers().Any(x => x.Contains("milestone:")));
|
||||
|
||||
request.Milestone = "testMilestone";
|
||||
Assert.True(request.MergedQualifiers().Contains("milestone:\"testMilestone\""));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void DoesntWrapMilestoneWithDoubleQuotesForQuotedMilestone()
|
||||
{
|
||||
var request = new SearchIssuesRequest("text");
|
||||
Assert.False(request.MergedQualifiers().Any(x => x.Contains("milestone:")));
|
||||
|
||||
request.Milestone = "\"testMilestone\"";
|
||||
Assert.Contains<string>("milestone:\"\\\"testMilestone\\\"\"", request.MergedQualifiers());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void HandlesNoMetadataAttributeCorrectly()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user