mirror of
https://github.com/zoriya/octokit.net.git
synced 2025-12-06 07:16:09 +00:00
* Fix xUnit Warnings * Fix * Fix formatting in AsyncPaginationExtensionGenerator.cs --------- Co-authored-by: Keegan Campbell <me@kfcampbell.com>
261 lines
10 KiB
C#
261 lines
10 KiB
C#
using System;
|
|
using System.Threading.Tasks;
|
|
using Octokit;
|
|
using Octokit.Tests.Integration;
|
|
using Xunit;
|
|
using Octokit.Tests.Integration.Helpers;
|
|
|
|
public class DeploymentStatusClientTests : IDisposable
|
|
{
|
|
private readonly IDeploymentsClient _deploymentsClient;
|
|
private readonly RepositoryContext _context;
|
|
private readonly Deployment _deployment;
|
|
|
|
public DeploymentStatusClientTests()
|
|
{
|
|
var github = Helper.GetAuthenticatedClient();
|
|
|
|
_deploymentsClient = github.Repository.Deployment;
|
|
_context = github.CreateRepositoryContextWithAutoInit("public-repo").Result;
|
|
|
|
var blob = new NewBlob
|
|
{
|
|
Content = "Hello World!",
|
|
Encoding = EncodingType.Utf8
|
|
};
|
|
|
|
var blobResult = github.Git.Blob.Create(_context.RepositoryOwner, _context.RepositoryName, blob).Result;
|
|
|
|
var newTree = new NewTree();
|
|
newTree.Tree.Add(new NewTreeItem
|
|
{
|
|
Type = TreeType.Blob,
|
|
Mode = FileMode.File,
|
|
Path = "README.md",
|
|
Sha = blobResult.Sha
|
|
});
|
|
|
|
var treeResult = github.Git.Tree.Create(_context.RepositoryOwner, _context.RepositoryName, newTree).Result;
|
|
var newCommit = new NewCommit("test-commit", treeResult.Sha);
|
|
|
|
var commit = github.Git.Commit.Create(_context.RepositoryOwner, _context.RepositoryName, newCommit).Result;
|
|
|
|
var newDeployment = new NewDeployment(commit.Sha)
|
|
{
|
|
Environment = "production",
|
|
AutoMerge = false
|
|
};
|
|
_deployment = _deploymentsClient.Create(_context.RepositoryOwner, _context.RepositoryName, newDeployment).Result;
|
|
}
|
|
|
|
[IntegrationTest]
|
|
public async Task CanCreateDeploymentStatus()
|
|
{
|
|
var newStatus = new NewDeploymentStatus(DeploymentState.Success);
|
|
|
|
var status = await _deploymentsClient.Status.Create(_context.RepositoryOwner, _context.RepositoryName, _deployment.Id, newStatus);
|
|
|
|
Assert.NotNull(status);
|
|
Assert.Equal(DeploymentState.Success, status.State);
|
|
}
|
|
|
|
[IntegrationTest]
|
|
public async Task CanCreateDeploymentStatusWithNewState()
|
|
{
|
|
var newStatus = new NewDeploymentStatus(DeploymentState.InProgress);
|
|
|
|
var status = await _deploymentsClient.Status.Create(_context.RepositoryOwner, _context.RepositoryName, _deployment.Id, newStatus);
|
|
|
|
Assert.NotNull(status);
|
|
Assert.Equal(DeploymentState.InProgress, status.State);
|
|
}
|
|
|
|
[IntegrationTest]
|
|
public async Task CanCreateDeploymentStatusWithRepositoryId()
|
|
{
|
|
var newStatus = new NewDeploymentStatus(DeploymentState.Success);
|
|
|
|
var status = await _deploymentsClient.Status.Create(_context.Repository.Id, _deployment.Id, newStatus);
|
|
|
|
Assert.NotNull(status);
|
|
Assert.Equal(DeploymentState.Success, status.State);
|
|
}
|
|
|
|
[IntegrationTest]
|
|
public async Task CanReadDeploymentStatuses()
|
|
{
|
|
var newStatus = new NewDeploymentStatus(DeploymentState.Success) { LogUrl = "http://test.com/log", EnvironmentUrl = "http:test.com/staging" };
|
|
await _deploymentsClient.Status.Create(_context.RepositoryOwner, _context.RepositoryName, _deployment.Id, newStatus);
|
|
|
|
var statuses = await _deploymentsClient.Status.GetAll(_context.RepositoryOwner, _context.RepositoryName, _deployment.Id);
|
|
|
|
Assert.NotEmpty(statuses);
|
|
Assert.Equal(DeploymentState.Success, statuses[0].State);
|
|
Assert.Equal(newStatus.LogUrl, statuses[0].LogUrl);
|
|
Assert.Equal(newStatus.EnvironmentUrl, statuses[0].EnvironmentUrl);
|
|
}
|
|
|
|
[IntegrationTest]
|
|
public async Task CanReadDeploymentStatusesWithRepositoryId()
|
|
{
|
|
var newStatus = new NewDeploymentStatus(DeploymentState.Success);
|
|
await _deploymentsClient.Status.Create(_context.Repository.Id, _deployment.Id, newStatus);
|
|
|
|
var statuses = await _deploymentsClient.Status.GetAll(_context.Repository.Id, _deployment.Id);
|
|
|
|
Assert.NotEmpty(statuses);
|
|
Assert.Equal(DeploymentState.Success, statuses[0].State);
|
|
}
|
|
|
|
[IntegrationTest]
|
|
public async Task ReturnsCorrectCountOfDeploymentStatusesWithoutStart()
|
|
{
|
|
var newStatus1 = new NewDeploymentStatus(DeploymentState.Success);
|
|
var newStatus2 = new NewDeploymentStatus(DeploymentState.Success);
|
|
var newStatus3 = new NewDeploymentStatus(DeploymentState.Success);
|
|
await _deploymentsClient.Status.Create(_context.RepositoryOwner, _context.RepositoryName, _deployment.Id, newStatus1);
|
|
await _deploymentsClient.Status.Create(_context.RepositoryOwner, _context.RepositoryName, _deployment.Id, newStatus2);
|
|
await _deploymentsClient.Status.Create(_context.RepositoryOwner, _context.RepositoryName, _deployment.Id, newStatus3);
|
|
|
|
var options = new ApiOptions
|
|
{
|
|
PageSize = 3,
|
|
PageCount = 1
|
|
};
|
|
|
|
var deploymentStatuses = await _deploymentsClient.Status.GetAll(_context.RepositoryOwner, _context.RepositoryName, _deployment.Id, options);
|
|
|
|
Assert.Equal(3, deploymentStatuses.Count);
|
|
}
|
|
|
|
[IntegrationTest]
|
|
public async Task ReturnsCorrectCountOfDeploymentStatusesWithoutStartWithRepositoryId()
|
|
{
|
|
var newStatus1 = new NewDeploymentStatus(DeploymentState.Success);
|
|
var newStatus2 = new NewDeploymentStatus(DeploymentState.Success);
|
|
var newStatus3 = new NewDeploymentStatus(DeploymentState.Success);
|
|
await _deploymentsClient.Status.Create(_context.Repository.Id, _deployment.Id, newStatus1);
|
|
await _deploymentsClient.Status.Create(_context.Repository.Id, _deployment.Id, newStatus2);
|
|
await _deploymentsClient.Status.Create(_context.Repository.Id, _deployment.Id, newStatus3);
|
|
|
|
var options = new ApiOptions
|
|
{
|
|
PageSize = 3,
|
|
PageCount = 1
|
|
};
|
|
|
|
var deploymentStatuses = await _deploymentsClient.Status.GetAll(_context.Repository.Id, _deployment.Id, options);
|
|
|
|
Assert.Equal(3, deploymentStatuses.Count);
|
|
}
|
|
|
|
[IntegrationTest]
|
|
public async Task ReturnsCorrectCountOfDeploymentStatusesWithStart()
|
|
{
|
|
var newStatus1 = new NewDeploymentStatus(DeploymentState.Success);
|
|
var newStatus2 = new NewDeploymentStatus(DeploymentState.Success);
|
|
var newStatus3 = new NewDeploymentStatus(DeploymentState.Success);
|
|
await _deploymentsClient.Status.Create(_context.RepositoryOwner, _context.RepositoryName, _deployment.Id, newStatus1);
|
|
await _deploymentsClient.Status.Create(_context.RepositoryOwner, _context.RepositoryName, _deployment.Id, newStatus2);
|
|
await _deploymentsClient.Status.Create(_context.RepositoryOwner, _context.RepositoryName, _deployment.Id, newStatus3);
|
|
|
|
var options = new ApiOptions
|
|
{
|
|
PageSize = 2,
|
|
PageCount = 1,
|
|
StartPage = 2
|
|
};
|
|
|
|
var deploymentStatuses = await _deploymentsClient.Status.GetAll(_context.RepositoryOwner, _context.RepositoryName, _deployment.Id, options);
|
|
|
|
Assert.Single(deploymentStatuses);
|
|
}
|
|
|
|
[IntegrationTest]
|
|
public async Task ReturnsCorrectCountOfDeploymentStatusesWithStartWithRepositoryId()
|
|
{
|
|
var newStatus1 = new NewDeploymentStatus(DeploymentState.Success);
|
|
var newStatus2 = new NewDeploymentStatus(DeploymentState.Success);
|
|
var newStatus3 = new NewDeploymentStatus(DeploymentState.Success);
|
|
await _deploymentsClient.Status.Create(_context.Repository.Id, _deployment.Id, newStatus1);
|
|
await _deploymentsClient.Status.Create(_context.Repository.Id, _deployment.Id, newStatus2);
|
|
await _deploymentsClient.Status.Create(_context.Repository.Id, _deployment.Id, newStatus3);
|
|
|
|
var options = new ApiOptions
|
|
{
|
|
PageSize = 2,
|
|
PageCount = 1,
|
|
StartPage = 2
|
|
};
|
|
|
|
var deploymentStatuses = await _deploymentsClient.Status.GetAll(_context.Repository.Id, _deployment.Id, options);
|
|
|
|
Assert.Single(deploymentStatuses);
|
|
}
|
|
|
|
[IntegrationTest]
|
|
public async Task ReturnsDistinctDeploymentStatusesBasedOnStartPage()
|
|
{
|
|
var newStatus1 = new NewDeploymentStatus(DeploymentState.Success);
|
|
var newStatus2 = new NewDeploymentStatus(DeploymentState.Success);
|
|
var newStatus3 = new NewDeploymentStatus(DeploymentState.Success);
|
|
await _deploymentsClient.Status.Create(_context.RepositoryOwner, _context.RepositoryName, _deployment.Id, newStatus1);
|
|
await _deploymentsClient.Status.Create(_context.RepositoryOwner, _context.RepositoryName, _deployment.Id, newStatus2);
|
|
await _deploymentsClient.Status.Create(_context.RepositoryOwner, _context.RepositoryName, _deployment.Id, newStatus3);
|
|
|
|
var startOptions = new ApiOptions
|
|
{
|
|
PageSize = 1,
|
|
PageCount = 1
|
|
};
|
|
|
|
var firstPage = await _deploymentsClient.Status.GetAll(_context.RepositoryOwner, _context.RepositoryName, _deployment.Id, startOptions);
|
|
|
|
var skipStartOptions = new ApiOptions
|
|
{
|
|
PageSize = 1,
|
|
PageCount = 1,
|
|
StartPage = 2
|
|
};
|
|
|
|
var secondPage = await _deploymentsClient.Status.GetAll(_context.RepositoryOwner, _context.RepositoryName, _deployment.Id, skipStartOptions);
|
|
|
|
Assert.NotEqual(firstPage[0].Id, secondPage[0].Id);
|
|
}
|
|
|
|
[IntegrationTest]
|
|
public async Task ReturnsDistinctDeploymentStatusesBasedOnStartPageWithRepositoryId()
|
|
{
|
|
var newStatus1 = new NewDeploymentStatus(DeploymentState.Success);
|
|
var newStatus2 = new NewDeploymentStatus(DeploymentState.Success);
|
|
var newStatus3 = new NewDeploymentStatus(DeploymentState.Success);
|
|
await _deploymentsClient.Status.Create(_context.Repository.Id, _deployment.Id, newStatus1);
|
|
await _deploymentsClient.Status.Create(_context.Repository.Id, _deployment.Id, newStatus2);
|
|
await _deploymentsClient.Status.Create(_context.Repository.Id, _deployment.Id, newStatus3);
|
|
|
|
var startOptions = new ApiOptions
|
|
{
|
|
PageSize = 1,
|
|
PageCount = 1
|
|
};
|
|
|
|
var firstPage = await _deploymentsClient.Status.GetAll(_context.Repository.Id, _deployment.Id, startOptions);
|
|
|
|
var skipStartOptions = new ApiOptions
|
|
{
|
|
PageSize = 1,
|
|
PageCount = 1,
|
|
StartPage = 2
|
|
};
|
|
|
|
var secondPage = await _deploymentsClient.Status.GetAll(_context.Repository.Id, _deployment.Id, skipStartOptions);
|
|
|
|
Assert.NotEqual(firstPage[0].Id, secondPage[0].Id);
|
|
}
|
|
|
|
public void Dispose()
|
|
{
|
|
_context.Dispose();
|
|
}
|
|
}
|