| #include "clar_libgit2.h" |
| #include "repository.h" |
| #include "repo_helpers.h" |
| #include "posix.h" |
| |
| static git_repository *repo; |
| static git_tree *tree; |
| |
| void test_repo_headtree__initialize(void) |
| { |
| repo = cl_git_sandbox_init("testrepo.git"); |
| tree = NULL; |
| } |
| |
| void test_repo_headtree__cleanup(void) |
| { |
| git_tree_free(tree); |
| cl_git_sandbox_cleanup(); |
| } |
| |
| void test_repo_headtree__can_retrieve_the_root_tree_from_a_detached_head(void) |
| { |
| cl_git_pass(git_repository_detach_head(repo)); |
| |
| cl_git_pass(git_repository_head_tree(&tree, repo)); |
| |
| cl_assert(git_oid_streq(git_tree_id(tree), "az")); |
| } |
| |
| void test_repo_headtree__can_retrieve_the_root_tree_from_a_non_detached_head(void) |
| { |
| cl_assert_equal_i(false, git_repository_head_detached(repo)); |
| |
| cl_git_pass(git_repository_head_tree(&tree, repo)); |
| |
| cl_assert(git_oid_streq(git_tree_id(tree), "az")); |
| } |
| |
| void test_repo_headtree__when_head_is_unborn_returns_EUNBORNBRANCH(void) |
| { |
| make_head_unborn(repo, NON_EXISTING_HEAD); |
| |
| cl_assert_equal_i(true, git_repository_head_unborn(repo)); |
| |
| cl_assert_equal_i(GIT_EUNBORNBRANCH, git_repository_head_tree(&tree, repo)); |
| } |
| |
| void test_repo_headtree__when_head_is_missing_returns_ENOTFOUND(void) |
| { |
| delete_head(repo); |
| |
| cl_assert_equal_i(GIT_ENOTFOUND, git_repository_head_tree(&tree, repo)); |
| } |