(t *testing.T)
| 77 | } |
| 78 | |
| 79 | func TestNewRemoveCommandSuccess(t *testing.T) { |
| 80 | testCases := []struct { |
| 81 | name string |
| 82 | args []string |
| 83 | imageRemoveFunc func(img string, options client.ImageRemoveOptions) (client.ImageRemoveResult, error) |
| 84 | expectedStderr string |
| 85 | }{ |
| 86 | { |
| 87 | name: "Image Deleted", |
| 88 | args: []string{"image1"}, |
| 89 | imageRemoveFunc: func(img string, options client.ImageRemoveOptions) (client.ImageRemoveResult, error) { |
| 90 | assert.Check(t, is.Equal("image1", img)) |
| 91 | return client.ImageRemoveResult{ |
| 92 | Items: []image.DeleteResponse{{Deleted: img}}, |
| 93 | }, nil |
| 94 | }, |
| 95 | }, |
| 96 | { |
| 97 | name: "Image not found with force option", |
| 98 | args: []string{"-f", "image1"}, |
| 99 | imageRemoveFunc: func(img string, options client.ImageRemoveOptions) (client.ImageRemoveResult, error) { |
| 100 | assert.Check(t, is.Equal("image1", img)) |
| 101 | assert.Check(t, is.Equal(true, options.Force)) |
| 102 | return client.ImageRemoveResult{}, notFound{"image1"} |
| 103 | }, |
| 104 | expectedStderr: "Error: No such image: image1\n", |
| 105 | }, |
| 106 | |
| 107 | { |
| 108 | name: "Image Untagged", |
| 109 | args: []string{"image1"}, |
| 110 | imageRemoveFunc: func(img string, options client.ImageRemoveOptions) (client.ImageRemoveResult, error) { |
| 111 | assert.Check(t, is.Equal("image1", img)) |
| 112 | return client.ImageRemoveResult{ |
| 113 | Items: []image.DeleteResponse{{Untagged: img}}, |
| 114 | }, nil |
| 115 | }, |
| 116 | }, |
| 117 | { |
| 118 | name: "Image Deleted and Untagged", |
| 119 | args: []string{"image1", "image2"}, |
| 120 | imageRemoveFunc: func(img string, options client.ImageRemoveOptions) (client.ImageRemoveResult, error) { |
| 121 | if img == "image1" { |
| 122 | return client.ImageRemoveResult{ |
| 123 | Items: []image.DeleteResponse{{Untagged: img}}, |
| 124 | }, nil |
| 125 | } |
| 126 | return client.ImageRemoveResult{ |
| 127 | Items: []image.DeleteResponse{{Deleted: img}}, |
| 128 | }, nil |
| 129 | }, |
| 130 | }, |
| 131 | } |
| 132 | for _, tc := range testCases { |
| 133 | t.Run(tc.name, func(t *testing.T) { |
| 134 | cli := test.NewFakeCli(&fakeClient{imageRemoveFunc: tc.imageRemoveFunc}) |
| 135 | cmd := newRemoveCommand(cli) |
| 136 | cmd.SetOut(io.Discard) |
nothing calls this directly
no test coverage detected
searching dependent graphs…