// Package test is a test-only package that can be used by other cli package to write unit test package test import ( "io" "io/ioutil" "github.com/docker/docker/cli/command" "github.com/docker/docker/client" "strings" ) // FakeCli emulates the default DockerCli type FakeCli struct { command.DockerCli client client.APIClient out io.Writer in io.ReadCloser } // NewFakeCli returns a Cli backed by the fakeCli func NewFakeCli(client client.APIClient, out io.Writer) *FakeCli { return &FakeCli{ client: client, out: out, in: ioutil.NopCloser(strings.NewReader("")), } } // SetIn sets the input of the cli to the specified ReadCloser func (c *FakeCli) SetIn(in io.ReadCloser) { c.in = in } // Client returns a docker API client func (c *FakeCli) Client() client.APIClient { return c.client } // Out returns the output stream the cli should write on func (c *FakeCli) Out() *command.OutStream { return command.NewOutStream(c.out) } // In returns thi input stream the cli will use func (c *FakeCli) In() *command.InStream { return command.NewInStream(c.in) }