github.com/ali-iotechsys/cli@v20.10.0+incompatible/cli/command/image/client_test.go (about) 1 package image 2 3 import ( 4 "context" 5 "io" 6 "io/ioutil" 7 "strings" 8 "time" 9 10 "github.com/docker/docker/api/types" 11 "github.com/docker/docker/api/types/filters" 12 "github.com/docker/docker/api/types/image" 13 "github.com/docker/docker/client" 14 ) 15 16 type fakeClient struct { 17 client.Client 18 imageTagFunc func(string, string) error 19 imageSaveFunc func(images []string) (io.ReadCloser, error) 20 imageRemoveFunc func(image string, options types.ImageRemoveOptions) ([]types.ImageDeleteResponseItem, error) 21 imagePushFunc func(ref string, options types.ImagePushOptions) (io.ReadCloser, error) 22 infoFunc func() (types.Info, error) 23 imagePullFunc func(ref string, options types.ImagePullOptions) (io.ReadCloser, error) 24 imagesPruneFunc func(pruneFilter filters.Args) (types.ImagesPruneReport, error) 25 imageLoadFunc func(input io.Reader, quiet bool) (types.ImageLoadResponse, error) 26 imageListFunc func(options types.ImageListOptions) ([]types.ImageSummary, error) 27 imageInspectFunc func(image string) (types.ImageInspect, []byte, error) 28 imageImportFunc func(source types.ImageImportSource, ref string, options types.ImageImportOptions) (io.ReadCloser, error) 29 imageHistoryFunc func(image string) ([]image.HistoryResponseItem, error) 30 imageBuildFunc func(context.Context, io.Reader, types.ImageBuildOptions) (types.ImageBuildResponse, error) 31 } 32 33 func (cli *fakeClient) ImageTag(_ context.Context, image, ref string) error { 34 if cli.imageTagFunc != nil { 35 return cli.imageTagFunc(image, ref) 36 } 37 return nil 38 } 39 40 func (cli *fakeClient) ImageSave(_ context.Context, images []string) (io.ReadCloser, error) { 41 if cli.imageSaveFunc != nil { 42 return cli.imageSaveFunc(images) 43 } 44 return ioutil.NopCloser(strings.NewReader("")), nil 45 } 46 47 func (cli *fakeClient) ImageRemove(_ context.Context, image string, 48 options types.ImageRemoveOptions) ([]types.ImageDeleteResponseItem, error) { 49 if cli.imageRemoveFunc != nil { 50 return cli.imageRemoveFunc(image, options) 51 } 52 return []types.ImageDeleteResponseItem{}, nil 53 } 54 55 func (cli *fakeClient) ImagePush(_ context.Context, ref string, options types.ImagePushOptions) (io.ReadCloser, error) { 56 if cli.imagePushFunc != nil { 57 return cli.imagePushFunc(ref, options) 58 } 59 return ioutil.NopCloser(strings.NewReader("")), nil 60 } 61 62 func (cli *fakeClient) Info(_ context.Context) (types.Info, error) { 63 if cli.infoFunc != nil { 64 return cli.infoFunc() 65 } 66 return types.Info{}, nil 67 } 68 69 func (cli *fakeClient) ImagePull(_ context.Context, ref string, options types.ImagePullOptions) (io.ReadCloser, error) { 70 if cli.imagePullFunc != nil { 71 cli.imagePullFunc(ref, options) 72 } 73 return ioutil.NopCloser(strings.NewReader("")), nil 74 } 75 76 func (cli *fakeClient) ImagesPrune(_ context.Context, pruneFilter filters.Args) (types.ImagesPruneReport, error) { 77 if cli.imagesPruneFunc != nil { 78 return cli.imagesPruneFunc(pruneFilter) 79 } 80 return types.ImagesPruneReport{}, nil 81 } 82 83 func (cli *fakeClient) ImageLoad(_ context.Context, input io.Reader, quiet bool) (types.ImageLoadResponse, error) { 84 if cli.imageLoadFunc != nil { 85 return cli.imageLoadFunc(input, quiet) 86 } 87 return types.ImageLoadResponse{}, nil 88 } 89 90 func (cli *fakeClient) ImageList(ctx context.Context, options types.ImageListOptions) ([]types.ImageSummary, error) { 91 if cli.imageListFunc != nil { 92 return cli.imageListFunc(options) 93 } 94 return []types.ImageSummary{{}}, nil 95 } 96 97 func (cli *fakeClient) ImageInspectWithRaw(_ context.Context, image string) (types.ImageInspect, []byte, error) { 98 if cli.imageInspectFunc != nil { 99 return cli.imageInspectFunc(image) 100 } 101 return types.ImageInspect{}, nil, nil 102 } 103 104 func (cli *fakeClient) ImageImport(_ context.Context, source types.ImageImportSource, ref string, 105 options types.ImageImportOptions) (io.ReadCloser, error) { 106 if cli.imageImportFunc != nil { 107 return cli.imageImportFunc(source, ref, options) 108 } 109 return ioutil.NopCloser(strings.NewReader("")), nil 110 } 111 112 func (cli *fakeClient) ImageHistory(_ context.Context, img string) ([]image.HistoryResponseItem, error) { 113 if cli.imageHistoryFunc != nil { 114 return cli.imageHistoryFunc(img) 115 } 116 return []image.HistoryResponseItem{{ID: img, Created: time.Now().Unix()}}, nil 117 } 118 119 func (cli *fakeClient) ImageBuild(ctx context.Context, context io.Reader, options types.ImageBuildOptions) (types.ImageBuildResponse, error) { 120 if cli.imageBuildFunc != nil { 121 return cli.imageBuildFunc(ctx, context, options) 122 } 123 return types.ImageBuildResponse{Body: ioutil.NopCloser(strings.NewReader(""))}, nil 124 }