tbotd/vendor/src/github.com/asdine/storm/drop_test.go

46 lines
838 B
Go

package storm
import (
"io/ioutil"
"os"
"path/filepath"
"testing"
"github.com/boltdb/bolt"
"github.com/stretchr/testify/assert"
)
func TestDrop(t *testing.T) {
dir, _ := ioutil.TempDir(os.TempDir(), "storm")
defer os.RemoveAll(dir)
db, _ := Open(filepath.Join(dir, "storm.db"))
n := db.From("b1", "b2", "b3")
err := n.Save(&SimpleUser{ID: 10, Name: "John"})
assert.NoError(t, err)
err = db.From("b1").Drop("b2")
assert.NoError(t, err)
err = db.From("b1").Drop("b2")
assert.Error(t, err)
n.From("b4").Drop("b5")
assert.Error(t, err)
err = db.Drop("b1")
assert.NoError(t, err)
db.Bolt.Update(func(tx *bolt.Tx) error {
d := db.WithTransaction(tx)
n := d.From("a1")
err = n.Save(&SimpleUser{ID: 10, Name: "John"})
assert.NoError(t, err)
err = d.Drop("a1")
assert.NoError(t, err)
return nil
})
}