53 lines
856 B
Go
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)
|
|
}
|
|
}
|