summaryrefslogtreecommitdiff
path: root/odb_test.go
diff options
context:
space:
mode:
authorCarlos Martín Nieto <[email protected]>2014-05-07 15:12:00 +0200
committerCarlos Martín Nieto <[email protected]>2014-05-07 15:12:00 +0200
commitf5e1252d6e391c634b4bfd008124a58e9e0a5bf3 (patch)
tree579c09cbba1f47254e7bfa685222e3e39ce62bbb /odb_test.go
parent9a8b80fc13b923b46b44fbd969e01db6d9f4b7b9 (diff)
parent7e3c361ac4c97f48d80d7ca63358e92ea464a087 (diff)
Merge pull request #90 from libgit2/unchanify
Remove usage of channels for `ForEach`
Diffstat (limited to 'odb_test.go')
-rw-r--r--odb_test.go36
1 files changed, 35 insertions, 1 deletions
diff --git a/odb_test.go b/odb_test.go
index 17b3ad2..14a3658 100644
--- a/odb_test.go
+++ b/odb_test.go
@@ -3,6 +3,7 @@ package git
import (
"io"
"os"
+ "errors"
"testing"
)
@@ -48,7 +49,7 @@ parent 66e1c476199ebcd3e304659992233132c5a52c6c
author John Doe <[email protected]> 1390682018 +0000
committer John Doe <[email protected]> 1390682018 +0000
-Initial commit.`;
+Initial commit.`
oid, error := odb.Hash([]byte(str), ObjectCommit)
checkFatal(t, error)
@@ -60,3 +61,36 @@ Initial commit.`;
t.Fatal("Hash and write Oids are different")
}
}
+
+func TestOdbForeach(t *testing.T) {
+ repo := createTestRepo(t)
+ defer os.RemoveAll(repo.Workdir())
+ _, _ = seedTestRepo(t, repo)
+
+ odb, err := repo.Odb()
+ checkFatal(t, err)
+
+ expect := 3
+ count := 0
+ err = odb.ForEach(func(id *Oid) error {
+ count++
+ return nil
+ })
+
+ checkFatal(t, err)
+ if count != expect {
+ t.Fatalf("Expected %v objects, got %v")
+ }
+
+ expect = 1
+ count = 0
+ to_return := errors.New("not really an error")
+ err = odb.ForEach(func(id *Oid) error {
+ count++
+ return to_return
+ })
+
+ if err != to_return {
+ t.Fatalf("Odb.ForEach() did not return the expected error, got %v", err)
+ }
+}