github.com/cspotcode/docker-cli@v20.10.0-rc1.0.20201201121459-3faad7acc5b8+incompatible/cli/command/manifest/rm_test.go (about) 1 package manifest 2 3 import ( 4 "io/ioutil" 5 "testing" 6 7 "github.com/docker/cli/internal/test" 8 "gotest.tools/v3/assert" 9 ) 10 11 // create two manifest lists and remove them both 12 func TestRmSeveralManifests(t *testing.T) { 13 store, cleanup := newTempManifestStore(t) 14 defer cleanup() 15 16 cli := test.NewFakeCli(nil) 17 cli.SetManifestStore(store) 18 19 list1 := ref(t, "first:1") 20 namedRef := ref(t, "alpine:3.0") 21 err := store.Save(list1, namedRef, fullImageManifest(t, namedRef)) 22 assert.NilError(t, err) 23 namedRef = ref(t, "alpine:3.1") 24 err = store.Save(list1, namedRef, fullImageManifest(t, namedRef)) 25 assert.NilError(t, err) 26 27 list2 := ref(t, "second:2") 28 namedRef = ref(t, "alpine:3.2") 29 err = store.Save(list2, namedRef, fullImageManifest(t, namedRef)) 30 assert.NilError(t, err) 31 32 cmd := newRmManifestListCommand(cli) 33 cmd.SetArgs([]string{"example.com/first:1", "example.com/second:2"}) 34 cmd.SetOut(ioutil.Discard) 35 err = cmd.Execute() 36 assert.NilError(t, err) 37 38 _, search1 := cli.ManifestStore().GetList(list1) 39 _, search2 := cli.ManifestStore().GetList(list2) 40 assert.Error(t, search1, "No such manifest: example.com/first:1") 41 assert.Error(t, search2, "No such manifest: example.com/second:2") 42 } 43 44 // attempt to remove a manifest list which was never created 45 func TestRmManifestNotCreated(t *testing.T) { 46 store, cleanup := newTempManifestStore(t) 47 defer cleanup() 48 49 cli := test.NewFakeCli(nil) 50 cli.SetManifestStore(store) 51 52 list2 := ref(t, "second:2") 53 namedRef := ref(t, "alpine:3.2") 54 err := store.Save(list2, namedRef, fullImageManifest(t, namedRef)) 55 assert.NilError(t, err) 56 57 cmd := newRmManifestListCommand(cli) 58 cmd.SetArgs([]string{"example.com/first:1", "example.com/second:2"}) 59 cmd.SetOut(ioutil.Discard) 60 err = cmd.Execute() 61 assert.Error(t, err, "No such manifest: example.com/first:1") 62 63 _, err = cli.ManifestStore().GetList(list2) 64 assert.Error(t, err, "No such manifest: example.com/second:2") 65 }