| package service // import "github.com/docker/docker/volume/service" | |
| import ( | |
| "context" | |
| "os" | |
| "testing" | |
| "github.com/docker/docker/volume" | |
| volumedrivers "github.com/docker/docker/volume/drivers" | |
| "github.com/docker/docker/volume/service/opts" | |
| volumetestutils "github.com/docker/docker/volume/testutils" | |
| "gotest.tools/v3/assert" | |
| ) | |
| func TestRestore(t *testing.T) { | |
| t.Parallel() | |
| dir, err := os.MkdirTemp("", "test-restore") | |
| assert.NilError(t, err) | |
| defer os.RemoveAll(dir) | |
| drivers := volumedrivers.NewStore(nil) | |
| driverName := "test-restore" | |
| drivers.Register(volumetestutils.NewFakeDriver(driverName), driverName) | |
| s, err := NewStore(dir, drivers) | |
| assert.NilError(t, err) | |
| defer s.Shutdown() | |
| ctx := context.Background() | |
| _, err = s.Create(ctx, "test1", driverName) | |
| assert.NilError(t, err) | |
| testLabels := map[string]string{"a": "1"} | |
| testOpts := map[string]string{"foo": "bar"} | |
| _, err = s.Create(ctx, "test2", driverName, opts.WithCreateOptions(testOpts), opts.WithCreateLabels(testLabels)) | |
| assert.NilError(t, err) | |
| s.Shutdown() | |
| s, err = NewStore(dir, drivers) | |
| assert.NilError(t, err) | |
| defer s.Shutdown() | |
| v, err := s.Get(ctx, "test1") | |
| assert.NilError(t, err) | |
| dv := v.(volume.DetailedVolume) | |
| var nilMap map[string]string | |
| assert.DeepEqual(t, nilMap, dv.Options()) | |
| assert.DeepEqual(t, nilMap, dv.Labels()) | |
| v, err = s.Get(ctx, "test2") | |
| assert.NilError(t, err) | |
| dv = v.(volume.DetailedVolume) | |
| assert.DeepEqual(t, testOpts, dv.Options()) | |
| assert.DeepEqual(t, testLabels, dv.Labels()) | |
| } |