aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Layher <mdlayher@gmail.com>2015-05-12 16:55:19 -0400
committerMatt Layher <mdlayher@gmail.com>2015-05-12 16:55:19 -0400
commit06cdcaad9449e0cdde3dccbb1fdd987f6ae42dc6 (patch)
tree30847f65d803dbab69107e6f910b39e3af9037f9
parentAdd DB.Sync(). (diff)
downloaddedo-06cdcaad9449e0cdde3dccbb1fdd987f6ae42dc6.tar.gz
dedo-06cdcaad9449e0cdde3dccbb1fdd987f6ae42dc6.tar.xz
tx_test: add tests for two tx.ForEach cases
-rw-r--r--tx_test.go32
1 files changed, 32 insertions, 0 deletions
diff --git a/tx_test.go b/tx_test.go
index 39f50c4..6c8271a 100644
--- a/tx_test.go
+++ b/tx_test.go
@@ -252,6 +252,38 @@ func TestTx_DeleteBucket_NotFound(t *testing.T) {
})
}
+// Ensure that no error is returned when a tx.ForEach function does not return
+// an error.
+func TestTx_ForEach_NoError(t *testing.T) {
+ db := NewTestDB()
+ defer db.Close()
+ db.Update(func(tx *bolt.Tx) error {
+ tx.CreateBucket([]byte("widgets"))
+ tx.Bucket([]byte("widgets")).Put([]byte("foo"), []byte("bar"))
+
+ equals(t, nil, tx.ForEach(func(name []byte, b *bolt.Bucket) error {
+ return nil
+ }))
+ return nil
+ })
+}
+
+// Ensure that an error is returned when a tx.ForEach function returns an error.
+func TestTx_ForEach_WithError(t *testing.T) {
+ db := NewTestDB()
+ defer db.Close()
+ db.Update(func(tx *bolt.Tx) error {
+ tx.CreateBucket([]byte("widgets"))
+ tx.Bucket([]byte("widgets")).Put([]byte("foo"), []byte("bar"))
+
+ err := errors.New("foo")
+ equals(t, err, tx.ForEach(func(name []byte, b *bolt.Bucket) error {
+ return err
+ }))
+ return nil
+ })
+}
+
// Ensure that Tx commit handlers are called after a transaction successfully commits.
func TestTx_OnCommit(t *testing.T) {
var x int