github.com/AliyunContainerService/cli@v0.0.0-20181009023821-814ced4b30d0/internal/containerizedengine/client_test.go (about)

     1  package containerizedengine
     2  
     3  import (
     4  	"context"
     5  
     6  	"github.com/containerd/containerd"
     7  	"github.com/containerd/containerd/cio"
     8  	"github.com/containerd/containerd/containers"
     9  	"github.com/containerd/containerd/content"
    10  	"github.com/containerd/containerd/oci"
    11  	prototypes "github.com/gogo/protobuf/types"
    12  	"github.com/opencontainers/go-digest"
    13  	ocispec "github.com/opencontainers/image-spec/specs-go/v1"
    14  )
    15  
    16  type (
    17  	fakeContainerdClient struct {
    18  		containersFunc       func(ctx context.Context, filters ...string) ([]containerd.Container, error)
    19  		newContainerFunc     func(ctx context.Context, id string, opts ...containerd.NewContainerOpts) (containerd.Container, error)
    20  		pullFunc             func(ctx context.Context, ref string, opts ...containerd.RemoteOpt) (containerd.Image, error)
    21  		getImageFunc         func(ctx context.Context, ref string) (containerd.Image, error)
    22  		contentStoreFunc     func() content.Store
    23  		containerServiceFunc func() containers.Store
    24  		installFunc          func(context.Context, containerd.Image, ...containerd.InstallOpts) error
    25  		versionFunc          func(ctx context.Context) (containerd.Version, error)
    26  	}
    27  	fakeContainer struct {
    28  		idFunc         func() string
    29  		infoFunc       func(context.Context) (containers.Container, error)
    30  		deleteFunc     func(context.Context, ...containerd.DeleteOpts) error
    31  		newTaskFunc    func(context.Context, cio.Creator, ...containerd.NewTaskOpts) (containerd.Task, error)
    32  		specFunc       func(context.Context) (*oci.Spec, error)
    33  		taskFunc       func(context.Context, cio.Attach) (containerd.Task, error)
    34  		imageFunc      func(context.Context) (containerd.Image, error)
    35  		labelsFunc     func(context.Context) (map[string]string, error)
    36  		setLabelsFunc  func(context.Context, map[string]string) (map[string]string, error)
    37  		extensionsFunc func(context.Context) (map[string]prototypes.Any, error)
    38  		updateFunc     func(context.Context, ...containerd.UpdateContainerOpts) error
    39  	}
    40  	fakeImage struct {
    41  		nameFunc         func() string
    42  		targetFunc       func() ocispec.Descriptor
    43  		unpackFunc       func(context.Context, string) error
    44  		rootFSFunc       func(ctx context.Context) ([]digest.Digest, error)
    45  		sizeFunc         func(ctx context.Context) (int64, error)
    46  		configFunc       func(ctx context.Context) (ocispec.Descriptor, error)
    47  		isUnpackedFunc   func(context.Context, string) (bool, error)
    48  		contentStoreFunc func() content.Store
    49  	}
    50  )
    51  
    52  func (w *fakeContainerdClient) Containers(ctx context.Context, filters ...string) ([]containerd.Container, error) {
    53  	if w.containersFunc != nil {
    54  		return w.containersFunc(ctx, filters...)
    55  	}
    56  	return []containerd.Container{}, nil
    57  }
    58  func (w *fakeContainerdClient) NewContainer(ctx context.Context, id string, opts ...containerd.NewContainerOpts) (containerd.Container, error) {
    59  	if w.newContainerFunc != nil {
    60  		return w.newContainerFunc(ctx, id, opts...)
    61  	}
    62  	return nil, nil
    63  }
    64  func (w *fakeContainerdClient) Pull(ctx context.Context, ref string, opts ...containerd.RemoteOpt) (containerd.Image, error) {
    65  	if w.pullFunc != nil {
    66  		return w.pullFunc(ctx, ref, opts...)
    67  	}
    68  	return nil, nil
    69  }
    70  func (w *fakeContainerdClient) GetImage(ctx context.Context, ref string) (containerd.Image, error) {
    71  	if w.getImageFunc != nil {
    72  		return w.getImageFunc(ctx, ref)
    73  	}
    74  	return nil, nil
    75  }
    76  func (w *fakeContainerdClient) ContentStore() content.Store {
    77  	if w.contentStoreFunc != nil {
    78  		return w.contentStoreFunc()
    79  	}
    80  	return nil
    81  }
    82  func (w *fakeContainerdClient) ContainerService() containers.Store {
    83  	if w.containerServiceFunc != nil {
    84  		return w.containerServiceFunc()
    85  	}
    86  	return nil
    87  }
    88  func (w *fakeContainerdClient) Close() error {
    89  	return nil
    90  }
    91  func (w *fakeContainerdClient) Install(ctx context.Context, image containerd.Image, args ...containerd.InstallOpts) error {
    92  	if w.installFunc != nil {
    93  		return w.installFunc(ctx, image, args...)
    94  	}
    95  	return nil
    96  }
    97  func (w *fakeContainerdClient) Version(ctx context.Context) (containerd.Version, error) {
    98  	if w.versionFunc != nil {
    99  		return w.versionFunc(ctx)
   100  	}
   101  	return containerd.Version{}, nil
   102  }
   103  
   104  func (c *fakeContainer) ID() string {
   105  	if c.idFunc != nil {
   106  		return c.idFunc()
   107  	}
   108  	return ""
   109  }
   110  func (c *fakeContainer) Info(ctx context.Context) (containers.Container, error) {
   111  	if c.infoFunc != nil {
   112  		return c.infoFunc(ctx)
   113  	}
   114  	return containers.Container{}, nil
   115  }
   116  func (c *fakeContainer) Delete(ctx context.Context, opts ...containerd.DeleteOpts) error {
   117  	if c.deleteFunc != nil {
   118  		return c.deleteFunc(ctx, opts...)
   119  	}
   120  	return nil
   121  }
   122  func (c *fakeContainer) NewTask(ctx context.Context, ioc cio.Creator, opts ...containerd.NewTaskOpts) (containerd.Task, error) {
   123  	if c.newTaskFunc != nil {
   124  		return c.newTaskFunc(ctx, ioc, opts...)
   125  	}
   126  	return nil, nil
   127  }
   128  func (c *fakeContainer) Spec(ctx context.Context) (*oci.Spec, error) {
   129  	if c.specFunc != nil {
   130  		return c.specFunc(ctx)
   131  	}
   132  	return nil, nil
   133  }
   134  func (c *fakeContainer) Task(ctx context.Context, attach cio.Attach) (containerd.Task, error) {
   135  	if c.taskFunc != nil {
   136  		return c.taskFunc(ctx, attach)
   137  	}
   138  	return nil, nil
   139  }
   140  func (c *fakeContainer) Image(ctx context.Context) (containerd.Image, error) {
   141  	if c.imageFunc != nil {
   142  		return c.imageFunc(ctx)
   143  	}
   144  	return nil, nil
   145  }
   146  func (c *fakeContainer) Labels(ctx context.Context) (map[string]string, error) {
   147  	if c.labelsFunc != nil {
   148  		return c.labelsFunc(ctx)
   149  	}
   150  	return nil, nil
   151  }
   152  func (c *fakeContainer) SetLabels(ctx context.Context, labels map[string]string) (map[string]string, error) {
   153  	if c.setLabelsFunc != nil {
   154  		return c.setLabelsFunc(ctx, labels)
   155  	}
   156  	return nil, nil
   157  }
   158  func (c *fakeContainer) Extensions(ctx context.Context) (map[string]prototypes.Any, error) {
   159  	if c.extensionsFunc != nil {
   160  		return c.extensionsFunc(ctx)
   161  	}
   162  	return nil, nil
   163  }
   164  func (c *fakeContainer) Update(ctx context.Context, opts ...containerd.UpdateContainerOpts) error {
   165  	if c.updateFunc != nil {
   166  		return c.updateFunc(ctx, opts...)
   167  	}
   168  	return nil
   169  }
   170  
   171  func (i *fakeImage) Name() string {
   172  	if i.nameFunc != nil {
   173  		return i.nameFunc()
   174  	}
   175  	return ""
   176  }
   177  func (i *fakeImage) Target() ocispec.Descriptor {
   178  	if i.targetFunc != nil {
   179  		return i.targetFunc()
   180  	}
   181  	return ocispec.Descriptor{}
   182  }
   183  func (i *fakeImage) Unpack(ctx context.Context, name string) error {
   184  	if i.unpackFunc != nil {
   185  		return i.unpackFunc(ctx, name)
   186  	}
   187  	return nil
   188  }
   189  func (i *fakeImage) RootFS(ctx context.Context) ([]digest.Digest, error) {
   190  	if i.rootFSFunc != nil {
   191  		return i.rootFSFunc(ctx)
   192  	}
   193  	return nil, nil
   194  }
   195  func (i *fakeImage) Size(ctx context.Context) (int64, error) {
   196  	if i.sizeFunc != nil {
   197  		return i.sizeFunc(ctx)
   198  	}
   199  	return 0, nil
   200  }
   201  func (i *fakeImage) Config(ctx context.Context) (ocispec.Descriptor, error) {
   202  	if i.configFunc != nil {
   203  		return i.configFunc(ctx)
   204  	}
   205  	return ocispec.Descriptor{}, nil
   206  }
   207  func (i *fakeImage) IsUnpacked(ctx context.Context, name string) (bool, error) {
   208  	if i.isUnpackedFunc != nil {
   209  		return i.isUnpackedFunc(ctx, name)
   210  	}
   211  	return false, nil
   212  }
   213  func (i *fakeImage) ContentStore() content.Store {
   214  	if i.contentStoreFunc != nil {
   215  		return i.contentStoreFunc()
   216  	}
   217  	return nil
   218  }