github.com/kaisenlinux/docker.io@v0.0.0-20230510090727-ea55db55fac7/engine/volume/service/db_test.go (about) 1 package service // import "github.com/docker/docker/volume/service" 2 3 import ( 4 "os" 5 "path/filepath" 6 "testing" 7 "time" 8 9 bolt "go.etcd.io/bbolt" 10 "gotest.tools/v3/assert" 11 is "gotest.tools/v3/assert/cmp" 12 ) 13 14 func TestSetGetMeta(t *testing.T) { 15 t.Parallel() 16 17 dir, err := os.MkdirTemp("", "test-set-get") 18 assert.NilError(t, err) 19 defer os.RemoveAll(dir) 20 21 db, err := bolt.Open(filepath.Join(dir, "db"), 0600, &bolt.Options{Timeout: 1 * time.Second}) 22 assert.NilError(t, err) 23 24 store := &VolumeStore{db: db} 25 26 _, err = store.getMeta("test") 27 assert.Assert(t, is.ErrorContains(err, "")) 28 29 err = db.Update(func(tx *bolt.Tx) error { 30 _, err := tx.CreateBucket(volumeBucketName) 31 return err 32 }) 33 assert.NilError(t, err) 34 35 meta, err := store.getMeta("test") 36 assert.NilError(t, err) 37 assert.DeepEqual(t, volumeMetadata{}, meta) 38 39 testMeta := volumeMetadata{ 40 Name: "test", 41 Driver: "fake", 42 Labels: map[string]string{"a": "1", "b": "2"}, 43 Options: map[string]string{"foo": "bar"}, 44 } 45 err = store.setMeta("test", testMeta) 46 assert.NilError(t, err) 47 48 meta, err = store.getMeta("test") 49 assert.NilError(t, err) 50 assert.DeepEqual(t, testMeta, meta) 51 }