Commit f24fa0880cdaa997bb12b298d44bf54988d6cfb4

Dave Borowitz 2010-11-04T15:06:56

Test that commit attributes are set correctly.

diff --git a/tests/t0403-write.c b/tests/t0403-write.c
index 4bd6597..d91e7b6 100644
--- a/tests/t0403-write.c
+++ b/tests/t0403-write.c
@@ -1,6 +1,7 @@
 #include "test_lib.h"
 #include "test_helpers.h"
 #include "commit.h"
+#include "person.h"
 
 #include <git/odb.h>
 #include <git/commit.h>
@@ -18,12 +19,15 @@ static const char *tree_oid = "1810dff58d8a660512d4832e740f692884338ccd";
 
 #define COMMITTER_NAME "Vicent Marti"
 #define COMMITTER_EMAIL "vicent@github.com"
+#define COMMIT_MESSAGE "This commit has been created in memory\n\
+This is a commit created in memory and it will be written back to disk\n"
 
 BEGIN_TEST(writenew_test)
 	git_repository *repo;
 	git_commit *commit, *parent;
 	git_tree *tree;
 	git_oid id;
+	const git_person *author, *committer;
 	/* char hex_oid[41]; */
 
 	must_pass(git_repository_open(&repo, REPOSITORY_FOLDER));
@@ -40,10 +44,23 @@ BEGIN_TEST(writenew_test)
 	/* Set other attributes */
 	git_commit_set_committer(commit, COMMITTER_NAME, COMMITTER_EMAIL, 123456789);
 	git_commit_set_author(commit, COMMITTER_NAME, COMMITTER_EMAIL, 987654321);
-	git_commit_set_message(commit, 
-			"This commit has been created in memory\n\
-This is a commit created in memory and it will be written back to disk\n");
-	
+	git_commit_set_message(commit, COMMIT_MESSAGE);
+
+	/* Check attributes were set correctly */
+	author = git_commit_author(commit);
+	must_be_true(author != NULL);
+	must_be_true(strcmp(author->name, COMMITTER_NAME) == 0);
+	must_be_true(strcmp(author->email, COMMITTER_EMAIL) == 0);
+	must_be_true(author->time == 987654321);
+
+	committer = git_commit_committer(commit);
+	must_be_true(committer != NULL);
+	must_be_true(strcmp(committer->name, COMMITTER_NAME) == 0);
+	must_be_true(strcmp(committer->email, COMMITTER_EMAIL) == 0);
+	must_be_true(committer->time == 123456789);
+
+	must_be_true(strcmp(git_commit_message(commit), COMMIT_MESSAGE) == 0);
+
 	/* add new tree */
 	git_oid_mkstr(&id, tree_oid);
 	must_pass(git_tree_lookup(&tree, repo, &id));