github.com/xeptore/docker-cli@v20.10.14+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  }