summaryrefslogtreecommitdiff
path: root/diff_test.go
diff options
context:
space:
mode:
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")
+ }
+}