diff --git a/Octokit.Tests.Integration/Clients/RepositoryDeployKeysClientTests.cs b/Octokit.Tests.Integration/Clients/RepositoryDeployKeysClientTests.cs new file mode 100644 index 00000000..99c49e23 --- /dev/null +++ b/Octokit.Tests.Integration/Clients/RepositoryDeployKeysClientTests.cs @@ -0,0 +1,109 @@ +using System; +using System.Threading.Tasks; +using Octokit; +using Octokit.Tests.Integration; +using Xunit; + +public class RepositoryDeployKeysClientTests : IDisposable +{ + const string _key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDB8IE5+RppLpeW+6lqo0fpfvMunKg6W4bhYCfVJIOYbpKoHP95nTUMZPBT++9NLeB4/YsuNTCrrpnpjc4f2IVpGvloRiVXjAzoJk9QIL6uzn1zRFdvaxSJ3Urhe9LcLHcIgccgZgSdWGzaZI3xtMvGC4diwWNsPjvVc/RyDM/MPqAim0X5XVOQwEFsSsUSraezJ+VgYMYzLYBcKWW0B86HVVhL4ZtmcY/RN2544bljnzw2M3aQvXNPTvkuiUoqLOI+5/qzZ8PfkruO55YtweEd0lkY6oZvrBPMD6dLODEqMHb4tD6htx60wSipNqjPwpOMpzp0Bk3G909unVXi6Fw5"; + const string _keyTitle = "octokit@github"; + readonly IGitHubClient _client; + IRepositoryDeployKeysClient _fixture; + Repository _repository; + DeployKey _deployKey; + string _owner; + + public RepositoryDeployKeysClientTests() + { + _client = new GitHubClient(new ProductHeaderValue("OctokitTests")) + { + Credentials = Helper.Credentials + }; + + var repoName = Helper.MakeNameWithTimestamp("public-repo"); + _fixture = _client.Repository.DeployKeys; + _repository = _client.Repository.Create(new NewRepository { Name = repoName, AutoInit = true }).Result; + _owner = _repository.Owner.Login; + + } + + [IntegrationTest] + public async Task CanCreateADeployKey() + { + var deployKey = new NewDeployKey() + { + Key = _key, + Title = _keyTitle + }; + + var deployKeyResult = await _fixture.Create(_owner, _repository.Name, deployKey); + Assert.NotNull(deployKeyResult); + Assert.Equal(_key, deployKeyResult.Key); + Assert.Equal(_keyTitle, deployKeyResult.Title); + } + + + [IntegrationTest] + public async Task CanRetrieveAllDeployKeys() + { + var deployKeys = await _fixture.GetAll(_owner, _repository.Name); + Assert.Equal(0, deployKeys.Count); + + var deployKey = new NewDeployKey() + { + Key = _key, + Title = _keyTitle + }; + + await _fixture.Create(_owner, _repository.Name, deployKey); + + deployKeys = await _fixture.GetAll(_owner, _repository.Name); + Assert.Equal(1, deployKeys.Count); + Assert.Equal(_key, deployKeys[0].Key); + Assert.Equal(_keyTitle, deployKeys[0].Title); + } + + [IntegrationTest] + public async Task CanRetrieveADeployKey() + { + var newDeployKey = new NewDeployKey() + { + Key = _key, + Title = _keyTitle + }; + var deployKeyResult = await _fixture.Create(_owner, _repository.Name, newDeployKey); + + var deployKey = await _fixture.Get(_owner, _repository.Name, deployKeyResult.Id); + Assert.NotNull(deployKey); + Assert.Equal(deployKeyResult.Id, deployKey.Id); + Assert.Equal(_key, deployKey.Key); + Assert.Equal(_keyTitle, deployKey.Title); + } + + [IntegrationTest] + public async Task CanRemoveADeployKey() + { + var newDeployKey = new NewDeployKey() + { + Key = _key, + Title = _keyTitle + }; + + await _fixture.Create(_owner, _repository.Name, newDeployKey); + + var deployKeys = await _fixture.GetAll(_owner, _repository.Name); + Assert.Equal(1, deployKeys.Count); + Assert.Equal(_key, deployKeys[0].Key); + Assert.Equal(_keyTitle, deployKeys[0].Title); + + await _fixture.Delete(_owner, _repository.Name, deployKeys[0].Id); + deployKeys = await _fixture.GetAll(_owner, _repository.Name); + Assert.Equal(0, deployKeys.Count); + } + + public void Dispose() + { + Helper.DeleteRepo(_repository); + } +} diff --git a/Octokit.Tests.Integration/Octokit.Tests.Integration.csproj b/Octokit.Tests.Integration/Octokit.Tests.Integration.csproj index db710660..164dbfa6 100644 --- a/Octokit.Tests.Integration/Octokit.Tests.Integration.csproj +++ b/Octokit.Tests.Integration/Octokit.Tests.Integration.csproj @@ -72,6 +72,7 @@ +