From 155f641683f09ec1a9511f42867ae3f278a6800b Mon Sep 17 00:00:00 2001 From: Jesse Ezell Date: Fri, 21 Mar 2014 22:16:26 -0700 Subject: don't expose 3 different diff foreach methods. use structures instead of pointers to structures for diff detail. add patch error code handling. trim excess data from diff structures. --- diff_test.go | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) (limited to 'diff_test.go') diff --git a/diff_test.go b/diff_test.go index f3a1ea6..b688294 100644 --- a/diff_test.go +++ b/diff_test.go @@ -2,13 +2,14 @@ package git import ( "errors" + "os" "testing" ) func TestDiffTreeToTree(t *testing.T) { repo := createTestRepo(t) defer repo.Free() - //defer os.RemoveAll(repo.Workdir()) + defer os.RemoveAll(repo.Workdir()) _, originalTreeId := seedTestRepo(t, repo) originalTree, err := repo.LookupTree(originalTreeId) @@ -20,26 +21,37 @@ func TestDiffTreeToTree(t *testing.T) { newTree, err := repo.LookupTree(newTreeId) checkFatal(t, err) - diff, err := repo.DiffTreeToTree(originalTree, newTree) + callbackInvoked := false + opts := DiffOptions{ + NotifyCallback: func(diffSoFar *Diff, delta DiffDelta, matchedPathSpec string) error { + callbackInvoked = true + return nil + }, + } + + diff, err := repo.DiffTreeToTree(originalTree, newTree, &opts) checkFatal(t, err) + if !callbackInvoked { + t.Fatal("callback not invoked") + } if diff == nil { t.Fatal("no diff returned") } files := make([]string, 0) - hunks := make([]*DiffHunk, 0) - lines := make([]*DiffLine, 0) - err = diff.ForEach(func(file *DiffDelta, progress float64) (DiffForEachHunkCallback, error) { + hunks := make([]DiffHunk, 0) + lines := make([]DiffLine, 0) + err = diff.ForEach(func(file DiffDelta, progress float64) (DiffForEachHunkCallback, error) { files = append(files, file.OldFile.Path) - return func(hunk *DiffHunk) (DiffForEachLineCallback, error) { + return func(hunk DiffHunk) (DiffForEachLineCallback, error) { hunks = append(hunks, hunk) - return func(line *DiffLine) error { + return func(line DiffLine) error { lines = append(lines, line) return nil }, nil }, nil - }, true, true) + }, DiffDetailLines) checkFatal(t, err) @@ -73,9 +85,9 @@ func TestDiffTreeToTree(t *testing.T) { errTest := errors.New("test error") - err = diff.ForEach(func(file *DiffDelta, progress float64) (DiffForEachHunkCallback, error) { + err = diff.ForEach(func(file DiffDelta, progress float64) (DiffForEachHunkCallback, error) { return nil, errTest - }, false, false) + }, DiffDetailLines) if err != errTest { t.Fatal("Expected custom error to be returned") -- cgit v1.2.3