summaryrefslogtreecommitdiff
path: root/tests-clar/notes/notes.c
diff options
context:
space:
mode:
authorNico von Geyso <Nico.Geyso@FU-Berlin.de>2013-03-06 16:43:21 +0100
committerNico von Geyso <Nico.Geyso@FU-Berlin.de>2013-03-06 17:01:33 +0100
commit6edb427b7615207142e10a228164d6a019045126 (patch)
treedf37c3e13d447f8fd5ee33198cbe7921439c4f2d /tests-clar/notes/notes.c
parentd1bcc1a8744343253df569ae4798302c1ff796e7 (diff)
downloadlibgit2-6edb427b7615207142e10a228164d6a019045126.tar.gz
basic note iterator implementation
* git_note_iterator_new() - create a new note iterator * git_note_next() - retrieves the next item of the iterator
Diffstat (limited to 'tests-clar/notes/notes.c')
-rw-r--r--tests-clar/notes/notes.c67
1 files changed, 66 insertions, 1 deletions
diff --git a/tests-clar/notes/notes.c b/tests-clar/notes/notes.c
index ee0b6c2f8..ea810670f 100644
--- a/tests-clar/notes/notes.c
+++ b/tests-clar/notes/notes.c
@@ -40,7 +40,9 @@ static void create_note(git_oid *note_oid, const char *canonical_namespace, cons
static struct {
const char *note_sha;
const char *annotated_object_sha;
-} list_expectations[] = {
+}
+
+list_expectations[] = {
{ "1c73b1f51762155d357bcd1fd4f2c409ef80065b", "4a202b346bb0fb0db7eff3cffeb3c70babbd2045" },
{ "1c73b1f51762155d357bcd1fd4f2c409ef80065b", "9fd738e8f7967c078dceed8190330fc8648ee56a" },
{ "257b43746b6b46caa4aa788376c647cce0a33e2b", "a65fedf39aefe402d3bb6e24df4d4f5fe4547750" },
@@ -317,3 +319,66 @@ void test_notes_notes__removing_a_note_which_doesnt_exists_returns_ENOTFOUND(voi
cl_git_fail(error);
cl_assert_equal_i(GIT_ENOTFOUND, error);
}
+
+void test_notes_notes__can_iterate_default_namespace(void)
+{
+ git_iterator *iter;
+ git_note *note;
+ git_oid note_id, annotated_id;
+ git_oid note_created[2];
+ const char* note_message[] = {
+ "I decorate a65f\n",
+ "I decorate c478\n"
+ };
+ int i;
+
+ create_note(&note_created[0], "refs/notes/commits",
+ "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", note_message[0]);
+ create_note(&note_created[1], "refs/notes/commits",
+ "c47800c7266a2be04c571c04d5a6614691ea99bd", note_message[1]);
+
+ cl_git_pass(git_note_iterator_new(&iter, _repo, NULL));
+
+ for (i = 0; git_note_next(&note_id, &annotated_id, iter) != GIT_ITEROVER; ++i)
+ {
+ cl_git_pass(git_note_read(&note, _repo, NULL, &annotated_id));
+ cl_assert_equal_s(git_note_message(note), note_message[i]);
+ }
+
+ cl_assert(i == 2);
+}
+
+void test_notes_notes__can_iterate_custom_namespace(void)
+{
+ git_iterator *iter;
+ git_note *note;
+ git_oid note_id, annotated_id;
+ git_oid note_created[2];
+ const char* note_message[] = {
+ "I decorate a65f\n",
+ "I decorate c478\n"
+ };
+ int i;
+
+ create_note(&note_created[0], "refs/notes/beer",
+ "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", note_message[0]);
+ create_note(&note_created[1], "refs/notes/beer",
+ "c47800c7266a2be04c571c04d5a6614691ea99bd", note_message[1]);
+
+ cl_git_pass(git_note_iterator_new(&iter, _repo, "refs/notes/beer"));
+
+ for (i = 0; git_note_next(&note_id, &annotated_id, iter) != GIT_ITEROVER; ++i)
+ {
+ cl_git_pass(git_note_read(&note, _repo, "refs/notes/beer", &annotated_id));
+ cl_assert_equal_s(git_note_message(note), note_message[i]);
+ }
+
+ cl_assert(i == 2);
+}
+
+void test_notes_notes__empty_iterate(void)
+{
+ git_iterator *iter;
+
+ cl_git_fail(git_note_iterator_new(&iter, _repo, "refs/notes/commits"));
+}