summaryrefslogtreecommitdiff
path: root/diff_test.go
diff options
context:
space:
mode:
authorJesse Ezell <[email protected]>2014-03-20 21:56:41 -0700
committerJesse Ezell <[email protected]>2014-03-20 21:56:41 -0700
commitd0b334b24409ddc190a7010be0072d87df6b6bfe (patch)
treefb434c1f8182296b2a80bdf1939e09ddca021e68 /diff_test.go
parent9acd67e388b6fccf982c9206dc5326ae35c13f49 (diff)
cleanup and refactor diff / patch
Diffstat (limited to 'diff_test.go')
-rw-r--r--diff_test.go41
1 files changed, 41 insertions, 0 deletions
diff --git a/diff_test.go b/diff_test.go
new file mode 100644
index 0000000..15aabc5
--- /dev/null
+++ b/diff_test.go
@@ -0,0 +1,41 @@
+package git
+
+import (
+ "testing"
+)
+
+func TestDiffTreeToTree(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)
+ updateReadme(t, repo, "file changed\n")
+
+ _, newTreeId := seedTestRepo(t, repo)
+ newTree, err := repo.LookupTree(newTreeId)
+ checkFatal(t, err)
+
+ diff, err := repo.DiffTreeToTree(originalTreeId, newTreeId)
+ checkFatal(t, err)
+
+ files := make([]string, 0)
+
+ err := diff.ForEachFile(func(file *DiffFile) error {
+ files = append(files, file.Path)
+ return nil
+ })
+
+ checkFatal(t, err)
+
+ if len(files) != 0 {
+ t.Fatal("Incorrect number of files in diff")
+ }
+
+ if files[0] != "README" {
+ t.Fatal("File in diff was expected to be README")
+ }
+}