mirror of
https://github.com/zoriya/octokit.net.git
synced 2026-06-05 03:30:34 +00:00
added new integration tests
This commit is contained in:
@@ -1,5 +1,4 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Octokit;
|
||||
using Octokit.Tests.Integration;
|
||||
@@ -33,6 +32,77 @@ public class MilestonesClientTests : IDisposable
|
||||
Assert.Equal("a milestone", result.Title);
|
||||
}
|
||||
|
||||
[IntegrationTest]
|
||||
public async Task CanRetrieveOneMilestoneWithRepositoryId()
|
||||
{
|
||||
var newMilestone = new NewMilestone("a milestone") { DueOn = DateTime.Now };
|
||||
var created = await _milestonesClient.Create(_context.Repository.Id, newMilestone);
|
||||
|
||||
var result = await _milestonesClient.Get(_context.Repository.Id, created.Number);
|
||||
|
||||
Assert.Equal("a milestone", result.Title);
|
||||
}
|
||||
|
||||
[IntegrationTest]
|
||||
public async Task CanDeleteOneMilestone()
|
||||
{
|
||||
var newMilestone = new NewMilestone("a milestone") { DueOn = DateTime.Now };
|
||||
var created = await _milestonesClient.Create(_context.RepositoryOwner, _context.RepositoryName, newMilestone);
|
||||
|
||||
var result1 = await _milestonesClient.Get(_context.RepositoryOwner, _context.RepositoryName, created.Number);
|
||||
Assert.Equal("a milestone", result1.Title);
|
||||
|
||||
await _milestonesClient.Delete(_context.RepositoryOwner, _context.RepositoryName, created.Number);
|
||||
|
||||
var result2 = await _milestonesClient.Get(_context.RepositoryOwner, _context.RepositoryName, created.Number);
|
||||
Assert.Null(result2);
|
||||
}
|
||||
|
||||
[IntegrationTest]
|
||||
public async Task CanDeleteOneMilestoneWithRepositoryId()
|
||||
{
|
||||
var newMilestone = new NewMilestone("a milestone") { DueOn = DateTime.Now };
|
||||
var created = await _milestonesClient.Create(_context.Repository.Id, newMilestone);
|
||||
|
||||
var result1 = await _milestonesClient.Get(_context.Repository.Id, created.Number);
|
||||
Assert.Equal("a milestone", result1.Title);
|
||||
|
||||
await _milestonesClient.Delete(_context.Repository.Id, created.Number);
|
||||
|
||||
var result2 = await _milestonesClient.Get(_context.Repository.Id, created.Number);
|
||||
Assert.Null(result2);
|
||||
}
|
||||
|
||||
[IntegrationTest]
|
||||
public async Task CanUpdateOneMilestone()
|
||||
{
|
||||
var newMilestone = new NewMilestone("a milestone") { DueOn = DateTime.Now };
|
||||
var created = await _milestonesClient.Create(_context.RepositoryOwner, _context.RepositoryName, newMilestone);
|
||||
|
||||
var result1 = await _milestonesClient.Get(_context.RepositoryOwner, _context.RepositoryName, created.Number);
|
||||
Assert.Equal("a milestone", result1.Title);
|
||||
|
||||
await _milestonesClient.Update(_context.RepositoryOwner, _context.RepositoryName, created.Number, new MilestoneUpdate { Title = "New title" });
|
||||
|
||||
var result2 = await _milestonesClient.Get(_context.RepositoryOwner, _context.RepositoryName, created.Number);
|
||||
Assert.Equal("New title", result2.Title);
|
||||
}
|
||||
|
||||
[IntegrationTest]
|
||||
public async Task CanUpdateOneMilestoneWithRepositoryId()
|
||||
{
|
||||
var newMilestone = new NewMilestone("a milestone") { DueOn = DateTime.Now };
|
||||
var created = await _milestonesClient.Create(_context.Repository.Id, newMilestone);
|
||||
|
||||
var result1 = await _milestonesClient.Get(_context.Repository.Id, created.Number);
|
||||
Assert.Equal("a milestone", result1.Title);
|
||||
|
||||
await _milestonesClient.Update(_context.Repository.Id, created.Number, new MilestoneUpdate {Title = "New title"});
|
||||
|
||||
var result2 = await _milestonesClient.Get(_context.Repository.Id, created.Number);
|
||||
Assert.Equal("New title", result2.Title);
|
||||
}
|
||||
|
||||
[IntegrationTest]
|
||||
public async Task CanListEmptyMilestones()
|
||||
{
|
||||
@@ -41,6 +111,14 @@ public class MilestonesClientTests : IDisposable
|
||||
Assert.Empty(milestones);
|
||||
}
|
||||
|
||||
[IntegrationTest]
|
||||
public async Task CanListEmptyMilestonesWithRepositoryId()
|
||||
{
|
||||
var milestones = await _milestonesClient.GetAllForRepository(_context.Repository.Id);
|
||||
|
||||
Assert.Empty(milestones);
|
||||
}
|
||||
|
||||
[IntegrationTest]
|
||||
public async Task CanListMilestonesWithDefaultSortByDueDateAsc()
|
||||
{
|
||||
@@ -52,6 +130,24 @@ public class MilestonesClientTests : IDisposable
|
||||
await _milestonesClient.Create(_context.RepositoryOwner, _context.RepositoryName, milestone3);
|
||||
|
||||
var milestones = await _milestonesClient.GetAllForRepository(_context.RepositoryOwner, _context.RepositoryName);
|
||||
|
||||
Assert.Equal(2, milestones.Count);
|
||||
Assert.Equal("milestone 1", milestones[0].Title);
|
||||
Assert.Equal("milestone 2", milestones[1].Title);
|
||||
}
|
||||
|
||||
[IntegrationTest]
|
||||
public async Task CanListMilestonesWithDefaultSortByDueDateAscWithRepositoryId()
|
||||
{
|
||||
var milestone1 = new NewMilestone("milestone 1") { DueOn = DateTime.Now };
|
||||
var milestone2 = new NewMilestone("milestone 2") { DueOn = DateTime.Now.AddDays(1) };
|
||||
var milestone3 = new NewMilestone("milestone 3") { DueOn = DateTime.Now.AddDays(3), State = ItemState.Closed };
|
||||
await _milestonesClient.Create(_context.Repository.Id, milestone1);
|
||||
await _milestonesClient.Create(_context.Repository.Id, milestone2);
|
||||
await _milestonesClient.Create(_context.Repository.Id, milestone3);
|
||||
|
||||
var milestones = await _milestonesClient.GetAllForRepository(_context.Repository.Id);
|
||||
|
||||
Assert.Equal(2, milestones.Count);
|
||||
Assert.Equal("milestone 1", milestones[0].Title);
|
||||
Assert.Equal("milestone 2", milestones[1].Title);
|
||||
@@ -69,6 +165,25 @@ public class MilestonesClientTests : IDisposable
|
||||
|
||||
var milestones = await _milestonesClient.GetAllForRepository(_context.RepositoryOwner, _context.RepositoryName,
|
||||
new MilestoneRequest { SortDirection = SortDirection.Descending });
|
||||
|
||||
Assert.Equal(2, milestones.Count);
|
||||
Assert.Equal("milestone 2", milestones[0].Title);
|
||||
Assert.Equal("milestone 1", milestones[1].Title);
|
||||
}
|
||||
|
||||
[IntegrationTest]
|
||||
public async Task CanListMilestonesWithSortByDueDateDescWithRepositoryId()
|
||||
{
|
||||
var milestone1 = new NewMilestone("milestone 1") { DueOn = DateTime.Now };
|
||||
var milestone2 = new NewMilestone("milestone 2") { DueOn = DateTime.Now.AddDays(1) };
|
||||
var milestone3 = new NewMilestone("milestone 3") { DueOn = DateTime.Now.AddDays(3), State = ItemState.Closed };
|
||||
await _milestonesClient.Create(_context.Repository.Id, milestone1);
|
||||
await _milestonesClient.Create(_context.Repository.Id, milestone2);
|
||||
await _milestonesClient.Create(_context.Repository.Id, milestone3);
|
||||
|
||||
var milestones = await _milestonesClient.GetAllForRepository(_context.Repository.Id,
|
||||
new MilestoneRequest { SortDirection = SortDirection.Descending });
|
||||
|
||||
Assert.Equal(2, milestones.Count);
|
||||
Assert.Equal("milestone 2", milestones[0].Title);
|
||||
Assert.Equal("milestone 1", milestones[1].Title);
|
||||
@@ -92,22 +207,20 @@ public class MilestonesClientTests : IDisposable
|
||||
}
|
||||
|
||||
[IntegrationTest]
|
||||
public async Task CanRetrieveClosedIssues()
|
||||
public async Task CanListClosedMilestonesWithRepositoryId()
|
||||
{
|
||||
var newIssue = new NewIssue("A test issue") { Body = "A new unassigned issue" };
|
||||
var issue1 = await _github.Issue.Create(_context.RepositoryOwner, _context.RepositoryName, newIssue);
|
||||
var issue2 = await _github.Issue.Create(_context.RepositoryOwner, _context.RepositoryName, newIssue);
|
||||
await _github.Issue.Update(_context.RepositoryOwner, _context.RepositoryName, issue1.Number,
|
||||
new IssueUpdate { State = ItemState.Closed });
|
||||
await _github.Issue.Update(_context.RepositoryOwner, _context.RepositoryName, issue2.Number,
|
||||
new IssueUpdate { State = ItemState.Closed });
|
||||
var milestone1 = new NewMilestone("milestone 1") { DueOn = DateTime.Now };
|
||||
var milestone2 = new NewMilestone("milestone 2") { DueOn = DateTime.Now.AddDays(1) };
|
||||
var milestone3 = new NewMilestone("milestone 3") { DueOn = DateTime.Now.AddDays(3), State = ItemState.Closed };
|
||||
await _milestonesClient.Create(_context.Repository.Id, milestone1);
|
||||
await _milestonesClient.Create(_context.Repository.Id, milestone2);
|
||||
await _milestonesClient.Create(_context.Repository.Id, milestone3);
|
||||
|
||||
var retrieved = await _github.Issue.GetAllForRepository(_context.RepositoryOwner, _context.RepositoryName,
|
||||
new RepositoryIssueRequest { State = ItemStateFilter.Closed });
|
||||
var milestones = await _milestonesClient.GetAllForRepository(_context.Repository.Id,
|
||||
new MilestoneRequest { State = ItemStateFilter.Closed });
|
||||
|
||||
Assert.True(retrieved.Count >= 2);
|
||||
Assert.True(retrieved.Any(i => i.Number == issue1.Number));
|
||||
Assert.True(retrieved.Any(i => i.Number == issue2.Number));
|
||||
Assert.Equal(1, milestones.Count);
|
||||
Assert.Equal("milestone 3", milestones[0].Title);
|
||||
}
|
||||
|
||||
[IntegrationTest]
|
||||
@@ -131,6 +244,27 @@ public class MilestonesClientTests : IDisposable
|
||||
Assert.Equal(3, milestones.Count);
|
||||
}
|
||||
|
||||
[IntegrationTest]
|
||||
public async Task ReturnsCorrectCountOfMilestonesWithoutStartWithRepositoryId()
|
||||
{
|
||||
var milestone1 = new NewMilestone("milestone 1") { DueOn = DateTime.Now };
|
||||
var milestone2 = new NewMilestone("milestone 2") { DueOn = DateTime.Now.AddDays(1) };
|
||||
var milestone3 = new NewMilestone("milestone 3") { DueOn = DateTime.Now.AddDays(3) };
|
||||
await _milestonesClient.Create(_context.RepositoryOwner, _context.RepositoryName, milestone1);
|
||||
await _milestonesClient.Create(_context.RepositoryOwner, _context.RepositoryName, milestone2);
|
||||
await _milestonesClient.Create(_context.RepositoryOwner, _context.RepositoryName, milestone3);
|
||||
|
||||
var options = new ApiOptions
|
||||
{
|
||||
PageSize = 3,
|
||||
PageCount = 1
|
||||
};
|
||||
|
||||
var milestones = await _milestonesClient.GetAllForRepository(_context.Repository.Id, options);
|
||||
|
||||
Assert.Equal(3, milestones.Count);
|
||||
}
|
||||
|
||||
[IntegrationTest]
|
||||
public async Task ReturnsCorrectCountOfMilestonesWithStart()
|
||||
{
|
||||
@@ -153,6 +287,28 @@ public class MilestonesClientTests : IDisposable
|
||||
Assert.Equal(1, milestones.Count);
|
||||
}
|
||||
|
||||
[IntegrationTest]
|
||||
public async Task ReturnsCorrectCountOfMilestonesWithStartWithRepositoryId()
|
||||
{
|
||||
var milestone1 = new NewMilestone("milestone 1") { DueOn = DateTime.Now };
|
||||
var milestone2 = new NewMilestone("milestone 2") { DueOn = DateTime.Now.AddDays(1) };
|
||||
var milestone3 = new NewMilestone("milestone 3") { DueOn = DateTime.Now.AddDays(3) };
|
||||
await _milestonesClient.Create(_context.RepositoryOwner, _context.RepositoryName, milestone1);
|
||||
await _milestonesClient.Create(_context.RepositoryOwner, _context.RepositoryName, milestone2);
|
||||
await _milestonesClient.Create(_context.RepositoryOwner, _context.RepositoryName, milestone3);
|
||||
|
||||
var options = new ApiOptions
|
||||
{
|
||||
PageSize = 2,
|
||||
PageCount = 1,
|
||||
StartPage = 2
|
||||
};
|
||||
|
||||
var milestones = await _milestonesClient.GetAllForRepository(_context.Repository.Id, options);
|
||||
|
||||
Assert.Equal(1, milestones.Count);
|
||||
}
|
||||
|
||||
[IntegrationTest]
|
||||
public async Task ReturnsDistinctResultsBasedOnStartPage()
|
||||
{
|
||||
@@ -183,6 +339,36 @@ public class MilestonesClientTests : IDisposable
|
||||
Assert.NotEqual(firstPage[0].Number, secondPage[0].Number);
|
||||
}
|
||||
|
||||
[IntegrationTest]
|
||||
public async Task ReturnsDistinctResultsBasedOnStartPageWithRepositoryId()
|
||||
{
|
||||
var milestone1 = new NewMilestone("milestone 1") { DueOn = DateTime.Now };
|
||||
var milestone2 = new NewMilestone("milestone 2") { DueOn = DateTime.Now.AddDays(1) };
|
||||
var milestone3 = new NewMilestone("milestone 3") { DueOn = DateTime.Now.AddDays(3), State = ItemState.Closed };
|
||||
await _milestonesClient.Create(_context.RepositoryOwner, _context.RepositoryName, milestone1);
|
||||
await _milestonesClient.Create(_context.RepositoryOwner, _context.RepositoryName, milestone2);
|
||||
await _milestonesClient.Create(_context.RepositoryOwner, _context.RepositoryName, milestone3);
|
||||
|
||||
var startOptions = new ApiOptions
|
||||
{
|
||||
PageSize = 1,
|
||||
PageCount = 1
|
||||
};
|
||||
|
||||
var firstPage = await _milestonesClient.GetAllForRepository(_context.Repository.Id, startOptions);
|
||||
|
||||
var skipStartOptions = new ApiOptions
|
||||
{
|
||||
PageSize = 1,
|
||||
PageCount = 1,
|
||||
StartPage = 2
|
||||
};
|
||||
|
||||
var secondPage = await _milestonesClient.GetAllForRepository(_context.Repository.Id, skipStartOptions);
|
||||
|
||||
Assert.NotEqual(firstPage[0].Number, secondPage[0].Number);
|
||||
}
|
||||
|
||||
[IntegrationTest]
|
||||
public async Task ReturnsCorrectCountOfMilestonesWithoutStartParametrized()
|
||||
{
|
||||
@@ -206,6 +392,29 @@ public class MilestonesClientTests : IDisposable
|
||||
Assert.Equal(3, milestones.Count);
|
||||
}
|
||||
|
||||
[IntegrationTest]
|
||||
public async Task ReturnsCorrectCountOfMilestonesWithoutStartParametrizedWithRepositoryId()
|
||||
{
|
||||
var milestone1 = new NewMilestone("milestone 1") { DueOn = DateTime.Now };
|
||||
var milestone2 = new NewMilestone("milestone 2") { DueOn = DateTime.Now.AddDays(1), State = ItemState.Closed };
|
||||
var milestone3 = new NewMilestone("milestone 3") { DueOn = DateTime.Now.AddDays(3), State = ItemState.Closed };
|
||||
var milestone4 = new NewMilestone("milestone 4") { DueOn = DateTime.Now.AddDays(4), State = ItemState.Closed };
|
||||
await _milestonesClient.Create(_context.RepositoryOwner, _context.RepositoryName, milestone1);
|
||||
await _milestonesClient.Create(_context.RepositoryOwner, _context.RepositoryName, milestone2);
|
||||
await _milestonesClient.Create(_context.RepositoryOwner, _context.RepositoryName, milestone3);
|
||||
await _milestonesClient.Create(_context.RepositoryOwner, _context.RepositoryName, milestone4);
|
||||
|
||||
var options = new ApiOptions
|
||||
{
|
||||
PageSize = 3,
|
||||
PageCount = 1
|
||||
};
|
||||
|
||||
var milestones = await _milestonesClient.GetAllForRepository(_context.Repository.Id, new MilestoneRequest { State = ItemStateFilter.Closed }, options);
|
||||
|
||||
Assert.Equal(3, milestones.Count);
|
||||
}
|
||||
|
||||
[IntegrationTest]
|
||||
public async Task ReturnsCorrectCountOfMilestonesWithStartParametrized()
|
||||
{
|
||||
@@ -230,6 +439,30 @@ public class MilestonesClientTests : IDisposable
|
||||
Assert.Equal(1, milestones.Count);
|
||||
}
|
||||
|
||||
[IntegrationTest]
|
||||
public async Task ReturnsCorrectCountOfMilestonesWithStartParametrizedWithRepositoryId()
|
||||
{
|
||||
var milestone1 = new NewMilestone("milestone 1") { DueOn = DateTime.Now };
|
||||
var milestone2 = new NewMilestone("milestone 2") { DueOn = DateTime.Now.AddDays(1), State = ItemState.Closed };
|
||||
var milestone3 = new NewMilestone("milestone 3") { DueOn = DateTime.Now.AddDays(3), State = ItemState.Closed };
|
||||
var milestone4 = new NewMilestone("milestone 4") { DueOn = DateTime.Now.AddDays(4), State = ItemState.Closed };
|
||||
await _milestonesClient.Create(_context.RepositoryOwner, _context.RepositoryName, milestone1);
|
||||
await _milestonesClient.Create(_context.RepositoryOwner, _context.RepositoryName, milestone2);
|
||||
await _milestonesClient.Create(_context.RepositoryOwner, _context.RepositoryName, milestone3);
|
||||
await _milestonesClient.Create(_context.RepositoryOwner, _context.RepositoryName, milestone4);
|
||||
|
||||
var options = new ApiOptions
|
||||
{
|
||||
PageSize = 2,
|
||||
PageCount = 1,
|
||||
StartPage = 2
|
||||
};
|
||||
|
||||
var milestones = await _milestonesClient.GetAllForRepository(_context.Repository.Id, new MilestoneRequest { State = ItemStateFilter.Closed }, options);
|
||||
|
||||
Assert.Equal(1, milestones.Count);
|
||||
}
|
||||
|
||||
[IntegrationTest]
|
||||
public async Task ReturnsDistinctResultsBasedOnStartPageParametrized()
|
||||
{
|
||||
@@ -262,6 +495,38 @@ public class MilestonesClientTests : IDisposable
|
||||
Assert.NotEqual(firstPage[0].Number, secondPage[0].Number);
|
||||
}
|
||||
|
||||
[IntegrationTest]
|
||||
public async Task ReturnsDistinctResultsBasedOnStartPageParametrizedWithRepositoryId()
|
||||
{
|
||||
var milestone1 = new NewMilestone("milestone 1") { DueOn = DateTime.Now };
|
||||
var milestone2 = new NewMilestone("milestone 2") { DueOn = DateTime.Now.AddDays(1), State = ItemState.Closed };
|
||||
var milestone3 = new NewMilestone("milestone 3") { DueOn = DateTime.Now.AddDays(3), State = ItemState.Closed };
|
||||
await _milestonesClient.Create(_context.RepositoryOwner, _context.RepositoryName, milestone1);
|
||||
await _milestonesClient.Create(_context.RepositoryOwner, _context.RepositoryName, milestone2);
|
||||
await _milestonesClient.Create(_context.RepositoryOwner, _context.RepositoryName, milestone3);
|
||||
|
||||
var milestoneRequest = new MilestoneRequest { State = ItemStateFilter.Closed };
|
||||
|
||||
var startOptions = new ApiOptions
|
||||
{
|
||||
PageSize = 1,
|
||||
PageCount = 1
|
||||
};
|
||||
|
||||
var firstPage = await _milestonesClient.GetAllForRepository(_context.Repository.Id, milestoneRequest, startOptions);
|
||||
|
||||
var skipStartOptions = new ApiOptions
|
||||
{
|
||||
PageSize = 1,
|
||||
PageCount = 1,
|
||||
StartPage = 2
|
||||
};
|
||||
|
||||
var secondPage = await _milestonesClient.GetAllForRepository(_context.Repository.Id, milestoneRequest, skipStartOptions);
|
||||
|
||||
Assert.NotEqual(firstPage[0].Number, secondPage[0].Number);
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
_context.Dispose();
|
||||
|
||||
Reference in New Issue
Block a user