summaryrefslogtreecommitdiff
path: root/patch_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'patch_test.go')
-rw-r--r--patch_test.go34
1 files changed, 34 insertions, 0 deletions
diff --git a/patch_test.go b/patch_test.go
new file mode 100644
index 0000000..569eac2
--- /dev/null
+++ b/patch_test.go
@@ -0,0 +1,34 @@
+package git
+
+import (
+ "strings"
+ "testing"
+)
+
+func TestPatch(t *testing.T) {
+ repo := createTestRepo(t)
+ defer repo.Free()
+ //defer os.RemoveAll(repo.Workdir())
+
+ _, 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)
+
+ diff, err := repo.DiffTreeToTree(originalTree, newTree, nil)
+ 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")
+ }
+}