From 1a17a2cf1ee8b509dd00b7f29a01c13108acb2cc Mon Sep 17 00:00:00 2001 From: Ben Johnson Date: Fri, 31 Jan 2014 13:18:51 -0500 Subject: Add RWTransaction.Put(). --- rwtransaction_test.go | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'rwtransaction_test.go') diff --git a/rwtransaction_test.go b/rwtransaction_test.go index b6e971e..4d256cc 100644 --- a/rwtransaction_test.go +++ b/rwtransaction_test.go @@ -1,6 +1,7 @@ package bolt import ( + "strings" "testing" "github.com/stretchr/testify/assert" @@ -28,3 +29,35 @@ func TestTransactionCreateBucket(t *testing.T) { assert.NoError(t, err) }) } + +// Ensure that a bucket cannot be created twice. +func TestTransactionRecreateBucket(t *testing.T) { + withOpenDB(func(db *DB, path string) { + // Create a bucket. + err := db.CreateBucket("widgets") + assert.NoError(t, err) + + // Create the same bucket again. + err = db.CreateBucket("widgets") + assert.Equal(t, err, &Error{"bucket already exists", nil}) + }) +} + +// Ensure that a bucket is created with a non-blank name. +func TestTransactionCreateBucketWithoutName(t *testing.T) { + withOpenDB(func(db *DB, path string) { + err := db.CreateBucket("") + assert.Equal(t, err, &Error{"bucket name cannot be blank", nil}) + }) +} + +// Ensure that a bucket name is not too long. +func TestTransactionCreateBucketWithLongName(t *testing.T) { + withOpenDB(func(db *DB, path string) { + err := db.CreateBucket(strings.Repeat("X", 255)) + assert.NoError(t, err) + + err = db.CreateBucket(strings.Repeat("X", 256)) + assert.Equal(t, err, &Error{"bucket name too long", nil}) + }) +} -- cgit v1.2.3