mirror of
https://github.com/zoriya/octokit.net.git
synced 2025-12-20 14:15:12 +00:00
Add ability to pass ApiOptions to PullRequestsClient.Files (#2553)
* Add ability to pass ApiOptions to PullRequestsClient.Files * Change Reactive PullRequestClient + Fix Test Mocking
This commit is contained in:
@@ -231,6 +231,16 @@ namespace Octokit.Reactive
|
||||
/// <param name="number">The pull request number</param>
|
||||
IObservable<PullRequestCommit> Commits(long repositoryId, int number);
|
||||
|
||||
/// <summary>
|
||||
/// Get the list of files on a pull request.
|
||||
/// </summary>
|
||||
/// <remarks>https://developer.github.com/v3/pulls/#list-pull-requests-files</remarks>
|
||||
/// <param name="owner">The owner of the repository</param>
|
||||
/// <param name="name">The name of the repository</param>
|
||||
/// <param name="number">The pull request number</param>
|
||||
/// <param name="options">Options for changing the API response</param>
|
||||
IObservable<PullRequestFile> Files(string owner, string name, int number, ApiOptions options);
|
||||
|
||||
/// <summary>
|
||||
/// Get the list of files on a pull request.
|
||||
/// </summary>
|
||||
@@ -240,6 +250,15 @@ namespace Octokit.Reactive
|
||||
/// <param name="number">The pull request number</param>
|
||||
IObservable<PullRequestFile> Files(string owner, string name, int number);
|
||||
|
||||
/// <summary>
|
||||
/// Get the list of files on a pull request.
|
||||
/// </summary>
|
||||
/// <remarks>https://developer.github.com/v3/pulls/#list-pull-requests-files</remarks>
|
||||
/// <param name="repositoryId">The Id of the repository</param>
|
||||
/// <param name="number">The pull request number</param>
|
||||
/// <param name="options">Options for changing the API response</param>
|
||||
IObservable<PullRequestFile> Files(long repositoryId, int number, ApiOptions options);
|
||||
|
||||
/// <summary>
|
||||
/// Get the list of files on a pull request.
|
||||
/// </summary>
|
||||
|
||||
@@ -359,12 +359,37 @@ namespace Octokit.Reactive
|
||||
/// <param name="owner">The owner of the repository</param>
|
||||
/// <param name="name">The name of the repository</param>
|
||||
/// <param name="number">The pull request number</param>
|
||||
public IObservable<PullRequestFile> Files(string owner, string name, int number)
|
||||
/// <param name="options">Options for changing the API response</param>
|
||||
public IObservable<PullRequestFile> Files(string owner, string name, int number, ApiOptions options)
|
||||
{
|
||||
Ensure.ArgumentNotNullOrEmptyString(owner, nameof(owner));
|
||||
Ensure.ArgumentNotNullOrEmptyString(name, nameof(name));
|
||||
|
||||
return _connection.GetAndFlattenAllPages<PullRequestFile>(ApiUrls.PullRequestFiles(owner, name, number));
|
||||
return _connection.GetAndFlattenAllPages<PullRequestFile>(ApiUrls.PullRequestFiles(owner, name, number), options);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get the list of files on a pull request.
|
||||
/// </summary>
|
||||
/// <remarks>https://developer.github.com/v3/pulls/#list-pull-requests-files</remarks>
|
||||
/// <param name="owner">The owner of the repository</param>
|
||||
/// <param name="name">The name of the repository</param>
|
||||
/// <param name="number">The pull request number</param>
|
||||
public IObservable<PullRequestFile> Files(string owner, string name, int number)
|
||||
{
|
||||
return Files(owner, name, number, ApiOptions.None);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get the list of files on a pull request.
|
||||
/// </summary>
|
||||
/// <remarks>https://developer.github.com/v3/pulls/#list-pull-requests-files</remarks>
|
||||
/// <param name="repositoryId">The Id of the repository</param>
|
||||
/// <param name="number">The pull request number</param>
|
||||
/// <param name="options">Options for changing the API response</param>
|
||||
public IObservable<PullRequestFile> Files(long repositoryId, int number, ApiOptions options)
|
||||
{
|
||||
return _connection.GetAndFlattenAllPages<PullRequestFile>(ApiUrls.PullRequestFiles(repositoryId, number), options);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -375,7 +400,7 @@ namespace Octokit.Reactive
|
||||
/// <param name="number">The pull request number</param>
|
||||
public IObservable<PullRequestFile> Files(long repositoryId, int number)
|
||||
{
|
||||
return _connection.GetAndFlattenAllPages<PullRequestFile>(ApiUrls.PullRequestFiles(repositoryId, number));
|
||||
return Files(repositoryId, number, ApiOptions.None);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -461,7 +461,7 @@ namespace Octokit.Tests.Clients
|
||||
await client.Files("fake", "repo", 42);
|
||||
|
||||
connection.Received()
|
||||
.GetAll<PullRequestFile>(Arg.Is<Uri>(u => u.ToString() == "repos/fake/repo/pulls/42/files"));
|
||||
.GetAll<PullRequestFile>(Arg.Is<Uri>(u => u.ToString() == "repos/fake/repo/pulls/42/files"), Args.ApiOptions);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -473,7 +473,7 @@ namespace Octokit.Tests.Clients
|
||||
await client.Files(1, 42);
|
||||
|
||||
connection.Received()
|
||||
.GetAll<PullRequestFile>(Arg.Is<Uri>(u => u.ToString() == "repositories/1/pulls/42/files"));
|
||||
.GetAll<PullRequestFile>(Arg.Is<Uri>(u => u.ToString() == "repositories/1/pulls/42/files"), Args.ApiOptions);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
||||
@@ -704,7 +704,7 @@ namespace Octokit.Tests.Reactive
|
||||
CreateResponse(HttpStatusCode.OK),
|
||||
new List<PullRequestFile> { file }
|
||||
);
|
||||
connection.Get<List<PullRequestFile>>(Args.Uri, null)
|
||||
connection.Get<List<PullRequestFile>>(Args.Uri, Arg.Any<IDictionary<string, string>>())
|
||||
.Returns(Task.FromResult(response));
|
||||
gitHubClient.Connection.Returns(connection);
|
||||
var client = new ObservablePullRequestsClient(gitHubClient);
|
||||
@@ -713,7 +713,7 @@ namespace Octokit.Tests.Reactive
|
||||
|
||||
Assert.Equal(1, files.Count);
|
||||
Assert.Same(file, files[0]);
|
||||
connection.Received().Get<List<PullRequestFile>>(new Uri(expectedUrl, UriKind.Relative), null);
|
||||
connection.Received().Get<List<PullRequestFile>>(new Uri(expectedUrl, UriKind.Relative), Arg.Any<IDictionary<string, string>>());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -728,7 +728,7 @@ namespace Octokit.Tests.Reactive
|
||||
CreateResponse(HttpStatusCode.OK),
|
||||
new List<PullRequestFile> { file }
|
||||
);
|
||||
connection.Get<List<PullRequestFile>>(Args.Uri, null)
|
||||
connection.Get<List<PullRequestFile>>(Args.Uri, Arg.Any<IDictionary<string, string>>())
|
||||
.Returns(Task.FromResult(response));
|
||||
gitHubClient.Connection.Returns(connection);
|
||||
var client = new ObservablePullRequestsClient(gitHubClient);
|
||||
@@ -737,7 +737,7 @@ namespace Octokit.Tests.Reactive
|
||||
|
||||
Assert.Equal(1, files.Count);
|
||||
Assert.Same(file, files[0]);
|
||||
connection.Received().Get<List<PullRequestFile>>(new Uri(expectedUrl, UriKind.Relative), null);
|
||||
connection.Received().Get<List<PullRequestFile>>(new Uri(expectedUrl, UriKind.Relative), Arg.Any<IDictionary<string, string>>());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
||||
@@ -228,6 +228,16 @@ namespace Octokit
|
||||
/// <param name="number">The pull request number</param>
|
||||
Task<IReadOnlyList<PullRequestCommit>> Commits(long repositoryId, int number);
|
||||
|
||||
/// <summary>
|
||||
/// Get the list of files on a pull request.
|
||||
/// </summary>
|
||||
/// <remarks>https://developer.github.com/v3/pulls/#list-pull-requests-files</remarks>
|
||||
/// <param name="owner">The owner of the repository</param>
|
||||
/// <param name="name">The name of the repository</param>
|
||||
/// <param name="number">The pull request number</param>
|
||||
/// <param name="options">Options for changing the API response</param>
|
||||
Task<IReadOnlyList<PullRequestFile>> Files(string owner, string name, int number, ApiOptions options);
|
||||
|
||||
/// <summary>
|
||||
/// Get the list of files on a pull request.
|
||||
/// </summary>
|
||||
@@ -237,6 +247,15 @@ namespace Octokit
|
||||
/// <param name="number">The pull request number</param>
|
||||
Task<IReadOnlyList<PullRequestFile>> Files(string owner, string name, int number);
|
||||
|
||||
/// <summary>
|
||||
/// Get the list of files on a pull request.
|
||||
/// </summary>
|
||||
/// <remarks>https://developer.github.com/v3/pulls/#list-pull-requests-files</remarks>
|
||||
/// <param name="repositoryId">The Id of the repository</param>
|
||||
/// <param name="number">The pull request number</param>
|
||||
/// <param name="options">Options for changing the API response</param>
|
||||
Task<IReadOnlyList<PullRequestFile>> Files(long repositoryId, int number, ApiOptions options);
|
||||
|
||||
/// <summary>
|
||||
/// Get the list of files on a pull request.
|
||||
/// </summary>
|
||||
|
||||
@@ -425,11 +425,25 @@ namespace Octokit
|
||||
/// <param name="number">The pull request number</param>
|
||||
[ManualRoute("GET", "/repos/{owner}/{repo}/pulls/{pull_number}/files")]
|
||||
public Task<IReadOnlyList<PullRequestFile>> Files(string owner, string name, int number)
|
||||
{
|
||||
return Files(owner, name, number, ApiOptions.None);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get the list of files on a pull request.
|
||||
/// </summary>
|
||||
/// <remarks>https://developer.github.com/v3/pulls/#list-pull-requests-files</remarks>
|
||||
/// <param name="owner">The owner of the repository</param>
|
||||
/// <param name="name">The name of the repository</param>
|
||||
/// <param name="number">The pull request number</param>
|
||||
/// <param name="options">Options for changing the API response</param>
|
||||
[ManualRoute("GET", "/repos/{owner}/{repo}/pulls/{pull_number}/files")]
|
||||
public Task<IReadOnlyList<PullRequestFile>> Files(string owner, string name, int number, ApiOptions options)
|
||||
{
|
||||
Ensure.ArgumentNotNullOrEmptyString(owner, nameof(owner));
|
||||
Ensure.ArgumentNotNullOrEmptyString(name, nameof(name));
|
||||
|
||||
return ApiConnection.GetAll<PullRequestFile>(ApiUrls.PullRequestFiles(owner, name, number));
|
||||
return ApiConnection.GetAll<PullRequestFile>(ApiUrls.PullRequestFiles(owner, name, number), options);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -441,7 +455,20 @@ namespace Octokit
|
||||
[ManualRoute("GET", "/repositories/{id}/pulls/{number}/files")]
|
||||
public Task<IReadOnlyList<PullRequestFile>> Files(long repositoryId, int number)
|
||||
{
|
||||
return ApiConnection.GetAll<PullRequestFile>(ApiUrls.PullRequestFiles(repositoryId, number));
|
||||
return Files(repositoryId, number, ApiOptions.None);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get the list of files on a pull request.
|
||||
/// </summary>
|
||||
/// <remarks>https://developer.github.com/v3/pulls/#list-pull-requests-files</remarks>
|
||||
/// <param name="repositoryId">The Id of the repository</param>
|
||||
/// <param name="number">The pull request number</param>
|
||||
/// <param name="options">Options for changing the API response</param>
|
||||
[ManualRoute("GET", "/repositories/{id}/pulls/{number}/files")]
|
||||
public Task<IReadOnlyList<PullRequestFile>> Files(long repositoryId, int number, ApiOptions options)
|
||||
{
|
||||
return ApiConnection.GetAll<PullRequestFile>(ApiUrls.PullRequestFiles(repositoryId, number), options);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user