46 lines
920 B
Go
46 lines
920 B
Go
package storm
|
|
|
|
import (
|
|
"io/ioutil"
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestInit(t *testing.T) {
|
|
dir, _ := ioutil.TempDir(os.TempDir(), "storm")
|
|
defer os.RemoveAll(dir)
|
|
db, _ := Open(filepath.Join(dir, "storm.db"))
|
|
defer db.Close()
|
|
|
|
var u IndexedNameUser
|
|
err := db.One("Name", "John", &u)
|
|
assert.Error(t, err)
|
|
assert.EqualError(t, err, "bucket IndexedNameUser doesn't exist")
|
|
|
|
err = db.Init(&u)
|
|
assert.NoError(t, err)
|
|
|
|
err = db.One("Name", "John", &u)
|
|
assert.Error(t, err)
|
|
assert.Equal(t, ErrNotFound, err)
|
|
|
|
err = db.Init(&ClassicBadTags{})
|
|
assert.Error(t, err)
|
|
assert.Equal(t, ErrUnknownTag, err)
|
|
|
|
err = db.Init(10)
|
|
assert.Error(t, err)
|
|
assert.Equal(t, ErrBadType, err)
|
|
|
|
err = db.Init(&ClassicNoTags{})
|
|
assert.Error(t, err)
|
|
assert.Equal(t, ErrNoID, err)
|
|
|
|
err = db.Init(&struct{ ID string }{})
|
|
assert.Error(t, err)
|
|
assert.Equal(t, ErrNoName, err)
|
|
}
|