diff --git a/Octokit.Tests.Integration/Clients/UserEmailsClientTests.cs b/Octokit.Tests.Integration/Clients/UserEmailsClientTests.cs index 9b54fb76..0a1c5888 100644 --- a/Octokit.Tests.Integration/Clients/UserEmailsClientTests.cs +++ b/Octokit.Tests.Integration/Clients/UserEmailsClientTests.cs @@ -6,6 +6,14 @@ namespace Octokit.Tests.Integration.Clients { public class UserEmailsClientTests { + private readonly IUserEmailsClient _emailClient; + + public UserEmailsClientTests() + { + var github = Helper.GetAuthenticatedClient(); + _emailClient = github.User.Email; + } + [IntegrationTest] public async Task CanGetEmail() { @@ -23,6 +31,58 @@ namespace Octokit.Tests.Integration.Clients Assert.NotEmpty(emails); } + [IntegrationTest] + public async Task ReturnsCorrectCountOfEmailsWithoutStart() + { + var options = new ApiOptions + { + PageSize = 5, + PageCount = 1 + }; + + var emails = await _emailClient.GetAll(options); + + Assert.Equal(1, emails.Count); + } + + [IntegrationTest] + public async Task ReturnsCorrectCountOfEmailsWithStart() + { + var options = new ApiOptions + { + PageSize = 5, + PageCount = 1, + StartPage = 2 + }; + + var emails = await _emailClient.GetAll(options); + + Assert.Equal(0, emails.Count); + } + + //[IntegrationTest] + //public async Task ReturnsDistinctResultsBasedOnStartPage() + //{ + // var startOptions = new ApiOptions + // { + // PageSize = 5, + // PageCount = 1 + // }; + + // var firstPage = await _emailClient.GetAll(startOptions); + + // var skipStartOptions = new ApiOptions + // { + // PageSize = 5, + // PageCount = 1, + // StartPage = 2 + // }; + + // var secondPage = await _emailClient.GetAll(skipStartOptions); + + // Assert.Equal(firstPage[0].Email, secondPage[0].Email); + //} + const string testEmailAddress = "hahaha-not-a-real-email@foo.com"; [IntegrationTest(Skip = "this isn't passing in CI - i hate past me right now")] diff --git a/Octokit.Tests.Integration/Reactive/ObservableUserEmailsClientTests.cs b/Octokit.Tests.Integration/Reactive/ObservableUserEmailsClientTests.cs index a1fa327f..66811c52 100644 --- a/Octokit.Tests.Integration/Reactive/ObservableUserEmailsClientTests.cs +++ b/Octokit.Tests.Integration/Reactive/ObservableUserEmailsClientTests.cs @@ -7,12 +7,13 @@ namespace Octokit.Tests.Integration { public class ObservableUserEmailsClientTests { + private readonly ObservableUserEmailsClient _emailClient + = new ObservableUserEmailsClient(Helper.GetAuthenticatedClient()); + [IntegrationTest] public async Task CanGetEmail() { - var github = Helper.GetAuthenticatedClient(); - - var client = new ObservableUserEmailsClient(github); + var client = new ObservableUserEmailsClient(Helper.GetAuthenticatedClient()); var email = await client.GetAll(); Assert.NotNull(email); @@ -21,12 +22,60 @@ namespace Octokit.Tests.Integration [IntegrationTest] public async Task CanGetEmailWithApiOptions() { - var github = Helper.GetAuthenticatedClient(); - - var client = new ObservableUserEmailsClient(github); - - var email = await client.GetAll(ApiOptions.None); + var email = await _emailClient.GetAll(ApiOptions.None); Assert.NotNull(email); } + + [IntegrationTest] + public async Task ReturnsCorrectCountOfEmailsWithoutStart() + { + var options = new ApiOptions + { + PageSize = 5, + PageCount = 1 + }; + + var emails = await _emailClient.GetAll(options).ToList(); + + Assert.Equal(1, emails.Count); + } + + [IntegrationTest] + public async Task ReturnsCorrectCountOfEmailsWithStart() + { + var options = new ApiOptions + { + PageSize = 5, + PageCount = 1, + StartPage = 2 + }; + + var emails = await _emailClient.GetAll(options).ToList(); + + Assert.Equal(0, emails.Count); + } + + //[IntegrationTest] + //public async Task ReturnsDistinctResultsBasedOnStartPage() + //{ + // var startOptions = new ApiOptions + // { + // PageSize = 5, + // PageCount = 1 + // }; + + // var firstPage = await _emailClient.GetAll(startOptions); + + // var skipStartOptions = new ApiOptions + // { + // PageSize = 5, + // PageCount = 1, + // StartPage = 2 + // }; + + // var secondPage = await _emailClient.GetAll(skipStartOptions); + + // Assert.Equal(firstPage[0].Email, secondPage[0].Email); + //} } }