github.com/itscaro/cli@v0.0.0-20190705081621-c9db0fe93829/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  		checkpointFunc func(context.Context, string, ...containerd.CheckpointOpts) (containerd.Image, error)
    40  	}
    41  	fakeImage struct {
    42  		nameFunc         func() string
    43  		targetFunc       func() ocispec.Descriptor
    44  		labelFunc        func() map[string]string
    45  		unpackFunc       func(context.Context, string) error
    46  		rootFSFunc       func(ctx context.Context) ([]digest.Digest, error)
    47  		sizeFunc         func(ctx context.Context) (int64, error)
    48  		configFunc       func(ctx context.Context) (ocispec.Descriptor, error)
    49  		isUnpackedFunc   func(context.Context, string) (bool, error)
    50  		contentStoreFunc func() content.Store
    51  	}
    52  )
    53  
    54  func (w *fakeContainerdClient) Containers(ctx context.Context, filters ...string) ([]containerd.Container, error) {
    55  	if w.containersFunc != nil {
    56  		return w.containersFunc(ctx, filters...)
    57  	}
    58  	return []containerd.Container{}, nil
    59  }
    60  func (w *fakeContainerdClient) NewContainer(ctx context.Context, id string, opts ...containerd.NewContainerOpts) (containerd.Container, error) {
    61  	if w.newContainerFunc != nil {
    62  		return w.newContainerFunc(ctx, id, opts...)
    63  	}
    64  	return nil, nil
    65  }
    66  func (w *fakeContainerdClient) Pull(ctx context.Context, ref string, opts ...containerd.RemoteOpt) (containerd.Image, error) {
    67  	if w.pullFunc != nil {
    68  		return w.pullFunc(ctx, ref, opts...)
    69  	}
    70  	return nil, nil
    71  }
    72  func (w *fakeContainerdClient) GetImage(ctx context.Context, ref string) (containerd.Image, error) {
    73  	if w.getImageFunc != nil {
    74  		return w.getImageFunc(ctx, ref)
    75  	}
    76  	return nil, nil
    77  }
    78  func (w *fakeContainerdClient) ContentStore() content.Store {
    79  	if w.contentStoreFunc != nil {
    80  		return w.contentStoreFunc()
    81  	}
    82  	return nil
    83  }
    84  func (w *fakeContainerdClient) ContainerService() containers.Store {
    85  	if w.containerServiceFunc != nil {
    86  		return w.containerServiceFunc()
    87  	}
    88  	return nil
    89  }
    90  func (w *fakeContainerdClient) Close() error {
    91  	return nil
    92  }
    93  func (w *fakeContainerdClient) Install(ctx context.Context, image containerd.Image, args ...containerd.InstallOpts) error {
    94  	if w.installFunc != nil {
    95  		return w.installFunc(ctx, image, args...)
    96  	}
    97  	return nil
    98  }
    99  func (w *fakeContainerdClient) Version(ctx context.Context) (containerd.Version, error) {
   100  	if w.versionFunc != nil {
   101  		return w.versionFunc(ctx)
   102  	}
   103  	return containerd.Version{}, nil
   104  }
   105  
   106  func (c *fakeContainer) ID() string {
   107  	if c.idFunc != nil {
   108  		return c.idFunc()
   109  	}
   110  	return ""
   111  }
   112  func (c *fakeContainer) Info(ctx context.Context) (containers.Container, error) {
   113  	if c.infoFunc != nil {
   114  		return c.infoFunc(ctx)
   115  	}
   116  	return containers.Container{}, nil
   117  }
   118  func (c *fakeContainer) Delete(ctx context.Context, opts ...containerd.DeleteOpts) error {
   119  	if c.deleteFunc != nil {
   120  		return c.deleteFunc(ctx, opts...)
   121  	}
   122  	return nil
   123  }
   124  func (c *fakeContainer) NewTask(ctx context.Context, ioc cio.Creator, opts ...containerd.NewTaskOpts) (containerd.Task, error) {
   125  	if c.newTaskFunc != nil {
   126  		return c.newTaskFunc(ctx, ioc, opts...)
   127  	}
   128  	return nil, nil
   129  }
   130  func (c *fakeContainer) Spec(ctx context.Context) (*oci.Spec, error) {
   131  	if c.specFunc != nil {
   132  		return c.specFunc(ctx)
   133  	}
   134  	return nil, nil
   135  }
   136  func (c *fakeContainer) Task(ctx context.Context, attach cio.Attach) (containerd.Task, error) {
   137  	if c.taskFunc != nil {
   138  		return c.taskFunc(ctx, attach)
   139  	}
   140  	return nil, nil
   141  }
   142  func (c *fakeContainer) Image(ctx context.Context) (containerd.Image, error) {
   143  	if c.imageFunc != nil {
   144  		return c.imageFunc(ctx)
   145  	}
   146  	return nil, nil
   147  }
   148  func (c *fakeContainer) Labels(ctx context.Context) (map[string]string, error) {
   149  	if c.labelsFunc != nil {
   150  		return c.labelsFunc(ctx)
   151  	}
   152  	return nil, nil
   153  }
   154  func (c *fakeContainer) SetLabels(ctx context.Context, labels map[string]string) (map[string]string, error) {
   155  	if c.setLabelsFunc != nil {
   156  		return c.setLabelsFunc(ctx, labels)
   157  	}
   158  	return nil, nil
   159  }
   160  func (c *fakeContainer) Extensions(ctx context.Context) (map[string]prototypes.Any, error) {
   161  	if c.extensionsFunc != nil {
   162  		return c.extensionsFunc(ctx)
   163  	}
   164  	return nil, nil
   165  }
   166  func (c *fakeContainer) Update(ctx context.Context, opts ...containerd.UpdateContainerOpts) error {
   167  	if c.updateFunc != nil {
   168  		return c.updateFunc(ctx, opts...)
   169  	}
   170  	return nil
   171  }
   172  
   173  func (c *fakeContainer) Checkpoint(ctx context.Context, ref string, opts ...containerd.CheckpointOpts) (containerd.Image, error) {
   174  	if c.checkpointFunc != nil {
   175  		return c.checkpointFunc(ctx, ref, opts...)
   176  	}
   177  	return nil, nil
   178  }
   179  
   180  func (i *fakeImage) Name() string {
   181  	if i.nameFunc != nil {
   182  		return i.nameFunc()
   183  	}
   184  	return ""
   185  }
   186  func (i *fakeImage) Target() ocispec.Descriptor {
   187  	if i.targetFunc != nil {
   188  		return i.targetFunc()
   189  	}
   190  	return ocispec.Descriptor{}
   191  }
   192  func (i *fakeImage) Labels() map[string]string {
   193  	if i.labelFunc != nil {
   194  		return i.labelFunc()
   195  	}
   196  	return nil
   197  }
   198  
   199  func (i *fakeImage) Unpack(ctx context.Context, name string) error {
   200  	if i.unpackFunc != nil {
   201  		return i.unpackFunc(ctx, name)
   202  	}
   203  	return nil
   204  }
   205  func (i *fakeImage) RootFS(ctx context.Context) ([]digest.Digest, error) {
   206  	if i.rootFSFunc != nil {
   207  		return i.rootFSFunc(ctx)
   208  	}
   209  	return nil, nil
   210  }
   211  func (i *fakeImage) Size(ctx context.Context) (int64, error) {
   212  	if i.sizeFunc != nil {
   213  		return i.sizeFunc(ctx)
   214  	}
   215  	return 0, nil
   216  }
   217  func (i *fakeImage) Config(ctx context.Context) (ocispec.Descriptor, error) {
   218  	if i.configFunc != nil {
   219  		return i.configFunc(ctx)
   220  	}
   221  	return ocispec.Descriptor{}, nil
   222  }
   223  func (i *fakeImage) IsUnpacked(ctx context.Context, name string) (bool, error) {
   224  	if i.isUnpackedFunc != nil {
   225  		return i.isUnpackedFunc(ctx, name)
   226  	}
   227  	return false, nil
   228  }
   229  func (i *fakeImage) ContentStore() content.Store {
   230  	if i.contentStoreFunc != nil {
   231  		return i.contentStoreFunc()
   232  	}
   233  	return nil
   234  }