shock/serial_test.go
jolheiser de4e822f7d
Refactor to using Init funcs and add gob serializer
Signed-off-by: jolheiser <john.olheiser@gmail.com>
2020-08-03 16:11:20 -05:00

53 lines
856 B
Go

package shock
import (
"fmt"
"os"
"path"
"testing"
"go.etcd.io/bbolt"
)
func TestGob(t *testing.T) {
dbPath := path.Join(tmpDir, "gob.db")
db, err := Open(dbPath, os.ModePerm, &Options{
Bolt: bbolt.DefaultOptions,
Serializer: GobSerializer{},
})
if err != nil {
panic(err)
}
bucket := db.Bucket("test")
if err := bucket.Init(); err != nil {
t.Log(err)
t.FailNow()
}
for _, tc := range tt {
t.Run(tc.Name, func(t *testing.T) {
if err := bucket.Put(tc); err != nil {
t.Log(err)
t.FailNow()
}
var tcc TestUser
err := bucket.Get(tc.ID, &tcc)
if err != nil {
t.Log(err)
t.FailNow()
}
if !tcc.Equal(*tc) {
t.Log("Serialized struct is not the same")
t.FailNow()
}
})
}
if err := db.Bolt.Close(); err != nil {
fmt.Printf("Could not close DB %s: %v\n", dbPath, err)
}
}