github.1git.de/docker/cli@v26.1.3+incompatible/cli/command/container/client_test.go (about)

     1  package container
     2  
     3  import (
     4  	"context"
     5  	"io"
     6  
     7  	"github.com/docker/docker/api/types"
     8  	"github.com/docker/docker/api/types/container"
     9  	"github.com/docker/docker/api/types/filters"
    10  	"github.com/docker/docker/api/types/image"
    11  	"github.com/docker/docker/api/types/network"
    12  	"github.com/docker/docker/api/types/system"
    13  	"github.com/docker/docker/client"
    14  	specs "github.com/opencontainers/image-spec/specs-go/v1"
    15  )
    16  
    17  type fakeClient struct {
    18  	client.Client
    19  	inspectFunc         func(string) (types.ContainerJSON, error)
    20  	execInspectFunc     func(execID string) (types.ContainerExecInspect, error)
    21  	execCreateFunc      func(containerID string, config types.ExecConfig) (types.IDResponse, error)
    22  	createContainerFunc func(config *container.Config,
    23  		hostConfig *container.HostConfig,
    24  		networkingConfig *network.NetworkingConfig,
    25  		platform *specs.Platform,
    26  		containerName string) (container.CreateResponse, error)
    27  	containerStartFunc      func(containerID string, options container.StartOptions) error
    28  	imageCreateFunc         func(parentReference string, options image.CreateOptions) (io.ReadCloser, error)
    29  	infoFunc                func() (system.Info, error)
    30  	containerStatPathFunc   func(containerID, path string) (types.ContainerPathStat, error)
    31  	containerCopyFromFunc   func(containerID, srcPath string) (io.ReadCloser, types.ContainerPathStat, error)
    32  	logFunc                 func(string, container.LogsOptions) (io.ReadCloser, error)
    33  	waitFunc                func(string) (<-chan container.WaitResponse, <-chan error)
    34  	containerListFunc       func(container.ListOptions) ([]types.Container, error)
    35  	containerExportFunc     func(string) (io.ReadCloser, error)
    36  	containerExecResizeFunc func(id string, options container.ResizeOptions) error
    37  	containerRemoveFunc     func(ctx context.Context, containerID string, options container.RemoveOptions) error
    38  	containerKillFunc       func(ctx context.Context, containerID, signal string) error
    39  	containerPruneFunc      func(ctx context.Context, pruneFilters filters.Args) (types.ContainersPruneReport, error)
    40  	Version                 string
    41  }
    42  
    43  func (f *fakeClient) ContainerList(_ context.Context, options container.ListOptions) ([]types.Container, error) {
    44  	if f.containerListFunc != nil {
    45  		return f.containerListFunc(options)
    46  	}
    47  	return []types.Container{}, nil
    48  }
    49  
    50  func (f *fakeClient) ContainerInspect(_ context.Context, containerID string) (types.ContainerJSON, error) {
    51  	if f.inspectFunc != nil {
    52  		return f.inspectFunc(containerID)
    53  	}
    54  	return types.ContainerJSON{}, nil
    55  }
    56  
    57  func (f *fakeClient) ContainerExecCreate(_ context.Context, containerID string, config types.ExecConfig) (types.IDResponse, error) {
    58  	if f.execCreateFunc != nil {
    59  		return f.execCreateFunc(containerID, config)
    60  	}
    61  	return types.IDResponse{}, nil
    62  }
    63  
    64  func (f *fakeClient) ContainerExecInspect(_ context.Context, execID string) (types.ContainerExecInspect, error) {
    65  	if f.execInspectFunc != nil {
    66  		return f.execInspectFunc(execID)
    67  	}
    68  	return types.ContainerExecInspect{}, nil
    69  }
    70  
    71  func (f *fakeClient) ContainerExecStart(context.Context, string, types.ExecStartCheck) error {
    72  	return nil
    73  }
    74  
    75  func (f *fakeClient) ContainerCreate(
    76  	_ context.Context,
    77  	config *container.Config,
    78  	hostConfig *container.HostConfig,
    79  	networkingConfig *network.NetworkingConfig,
    80  	platform *specs.Platform,
    81  	containerName string,
    82  ) (container.CreateResponse, error) {
    83  	if f.createContainerFunc != nil {
    84  		return f.createContainerFunc(config, hostConfig, networkingConfig, platform, containerName)
    85  	}
    86  	return container.CreateResponse{}, nil
    87  }
    88  
    89  func (f *fakeClient) ContainerRemove(ctx context.Context, containerID string, options container.RemoveOptions) error {
    90  	if f.containerRemoveFunc != nil {
    91  		return f.containerRemoveFunc(ctx, containerID, options)
    92  	}
    93  	return nil
    94  }
    95  
    96  func (f *fakeClient) ImageCreate(_ context.Context, parentReference string, options image.CreateOptions) (io.ReadCloser, error) {
    97  	if f.imageCreateFunc != nil {
    98  		return f.imageCreateFunc(parentReference, options)
    99  	}
   100  	return nil, nil
   101  }
   102  
   103  func (f *fakeClient) Info(_ context.Context) (system.Info, error) {
   104  	if f.infoFunc != nil {
   105  		return f.infoFunc()
   106  	}
   107  	return system.Info{}, nil
   108  }
   109  
   110  func (f *fakeClient) ContainerStatPath(_ context.Context, containerID, path string) (types.ContainerPathStat, error) {
   111  	if f.containerStatPathFunc != nil {
   112  		return f.containerStatPathFunc(containerID, path)
   113  	}
   114  	return types.ContainerPathStat{}, nil
   115  }
   116  
   117  func (f *fakeClient) CopyFromContainer(_ context.Context, containerID, srcPath string) (io.ReadCloser, types.ContainerPathStat, error) {
   118  	if f.containerCopyFromFunc != nil {
   119  		return f.containerCopyFromFunc(containerID, srcPath)
   120  	}
   121  	return nil, types.ContainerPathStat{}, nil
   122  }
   123  
   124  func (f *fakeClient) ContainerLogs(_ context.Context, containerID string, options container.LogsOptions) (io.ReadCloser, error) {
   125  	if f.logFunc != nil {
   126  		return f.logFunc(containerID, options)
   127  	}
   128  	return nil, nil
   129  }
   130  
   131  func (f *fakeClient) ClientVersion() string {
   132  	return f.Version
   133  }
   134  
   135  func (f *fakeClient) ContainerWait(_ context.Context, containerID string, _ container.WaitCondition) (<-chan container.WaitResponse, <-chan error) {
   136  	if f.waitFunc != nil {
   137  		return f.waitFunc(containerID)
   138  	}
   139  	return nil, nil
   140  }
   141  
   142  func (f *fakeClient) ContainerStart(_ context.Context, containerID string, options container.StartOptions) error {
   143  	if f.containerStartFunc != nil {
   144  		return f.containerStartFunc(containerID, options)
   145  	}
   146  	return nil
   147  }
   148  
   149  func (f *fakeClient) ContainerExport(_ context.Context, containerID string) (io.ReadCloser, error) {
   150  	if f.containerExportFunc != nil {
   151  		return f.containerExportFunc(containerID)
   152  	}
   153  	return nil, nil
   154  }
   155  
   156  func (f *fakeClient) ContainerExecResize(_ context.Context, id string, options container.ResizeOptions) error {
   157  	if f.containerExecResizeFunc != nil {
   158  		return f.containerExecResizeFunc(id, options)
   159  	}
   160  	return nil
   161  }
   162  
   163  func (f *fakeClient) ContainerKill(ctx context.Context, containerID, signal string) error {
   164  	if f.containerKillFunc != nil {
   165  		return f.containerKillFunc(ctx, containerID, signal)
   166  	}
   167  	return nil
   168  }
   169  
   170  func (f *fakeClient) ContainersPrune(ctx context.Context, pruneFilters filters.Args) (types.ContainersPruneReport, error) {
   171  	if f.containerPruneFunc != nil {
   172  		return f.containerPruneFunc(ctx, pruneFilters)
   173  	}
   174  	return types.ContainersPruneReport{}, nil
   175  }