refactoring and improving Trees tests

This commit is contained in:
Brendan Forster
2013-11-27 11:35:39 -08:00
parent e9b8f5af25
commit ae38cc3e3f
@@ -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()