git2go/patch_test.go

48 lines
1.1 KiB
Go
Raw Permalink Normal View History

2014-03-21 00:54:18 -05:00
package git
import (
"strings"
"testing"
)
func TestPatch(t *testing.T) {
t.Parallel()
2014-03-21 00:54:18 -05:00
repo := createTestRepo(t)
defer cleanupTestRepo(t, repo)
2014-03-21 00:54:18 -05:00
_, originalTreeId := seedTestRepo(t, repo)
originalTree, err := repo.LookupTree(originalTreeId)
checkFatal(t, err)
_, newTreeId := updateReadme(t, repo, "file changed\n")
newTree, err := repo.LookupTree(newTreeId)
checkFatal(t, err)
2015-01-28 05:49:05 -06:00
opts := &DiffOptions{
OldPrefix: "a",
NewPrefix: "b",
}
diff, err := repo.DiffTreeToTree(originalTree, newTree, opts)
2014-03-21 00:54:18 -05:00
checkFatal(t, err)
patch, err := diff.Patch(0)
checkFatal(t, err)
patchStr, err := patch.String()
checkFatal(t, err)
if strings.Index(patchStr, "diff --git a/README b/README\nindex 257cc56..820734a 100644\n--- a/README\n+++ b/README\n@@ -1 +1 @@\n-foo\n+file changed") == -1 {
t.Fatalf("patch was bad")
}
2023-03-15 18:49:00 -05:00
numAdditions, numDeletions, err := patch.LineStats()
checkFatal(t, err)
if numAdditions != 1 {
2023-03-15 18:49:00 -05:00
t.Fatal("Incorrect number of additions in line stats")
}
if numDeletions != 1 {
2023-03-15 18:49:00 -05:00
t.Fatal("Incorrect number of deletions in line stats")
}
2014-03-21 00:54:18 -05:00
}