From ae38cc3e3fe5bdf7ab43f7610e95fd30932e6a1d Mon Sep 17 00:00:00 2001 From: Brendan Forster Date: Wed, 27 Nov 2013 11:35:39 -0800 Subject: [PATCH] refactoring and improving Trees tests --- .../Clients/TreeClientTests.cs | 67 ++++++++++++++++--- 1 file changed, 56 insertions(+), 11 deletions(-) diff --git a/Octokit.Tests.Integration/Clients/TreeClientTests.cs b/Octokit.Tests.Integration/Clients/TreeClientTests.cs index 26be6589..1c18a4d3 100644 --- a/Octokit.Tests.Integration/Clients/TreeClientTests.cs +++ b/Octokit.Tests.Integration/Clients/TreeClientTests.cs @@ -7,37 +7,82 @@ using Xunit; public class TreeClientTests : IDisposable { - ITreesClient _fixture; - Repository _repository; - string _owner; + readonly ITreesClient _fixture; + readonly Repository _repository; + readonly string _owner; + readonly GitHubClient _client; public TreeClientTests() { - var client = new GitHubClient(new ProductHeaderValue("OctokitTests")) + _client = new GitHubClient(new ProductHeaderValue("OctokitTests")) { Credentials = Helper.Credentials }; - _fixture = client.GitDatabase.Tree; + _fixture = _client.GitDatabase.Tree; var repoName = Helper.MakeNameWithTimestamp("public-repo"); - _repository = client.Repository.Create(new NewRepository { Name = repoName, AutoInit = true }).Result; + _repository = _client.Repository.Create(new NewRepository { Name = repoName, AutoInit = true }).Result; _owner = _repository.Owner.Login; } - [IntegrationTest(Skip="TODO")] + [IntegrationTest] public async Task CanCreateATree() { - // TODO: create a blob - // TODO: create a tree + var blob = new NewBlob + { + Content = "Hello World!", + Encoding = EncodingType.Utf8 + }; + var createdBlob = await _client.GitDatabase.Blob.Create(_owner, _repository.Name, blob); + + var newTree = new NewTree(); + newTree.Tree.Add(new NewTreeItem + { + Type = TreeType.Blob, + Path = "README.md", + Sha = createdBlob.Sha + }); + + var result = await _fixture.Create(_owner, _repository.Name, newTree); + + Assert.NotNull(result); } [IntegrationTest] public async Task CanGetATree() { - var tree = await _fixture.Get("octokit", "octokit.net", "master"); + var result = await _fixture.Get("octokit", "octokit.net", "master"); - Assert.NotNull(tree); + Assert.NotNull(result); + Assert.NotEmpty(result.Tree); + } + + [IntegrationTest] + public async Task CanGetACreatedTree() + { + var blob = new NewBlob + { + Content = "Hello World!", + Encoding = EncodingType.Utf8 + }; + + var blobResult = await _client.GitDatabase.Blob.Create(_owner, _repository.Name, blob); + + var newTree = new NewTree(); + newTree.Tree.Add(new NewTreeItem + { + Type = TreeType.Blob, + Path = "README.md", + Sha = blobResult.Sha + }); + + var tree = await _fixture.Create(_owner, _repository.Name, newTree); + + var result = await _fixture.Get(_owner, _repository.Name, tree.Sha); + + Assert.NotNull(result); + Assert.Equal(1, result.Tree.Count); } public void Dispose()