| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 | 
							- package cmd
 
- import (
 
- 	"context"
 
- 	"io/ioutil"
 
- 	"os"
 
- 	"testing"
 
- 	"github.com/stretchr/testify/require"
 
- 	"github.com/stretchr/testify/suite"
 
- 	"gotest.tools/v3/assert"
 
- 	"gotest.tools/v3/golden"
 
- 	apicontext "github.com/docker/api/context"
 
- 	"github.com/docker/api/context/store"
 
- 	_ "github.com/docker/api/example"
 
- )
 
- type PsSuite struct {
 
- 	suite.Suite
 
- 	ctx            context.Context
 
- 	writer         *os.File
 
- 	reader         *os.File
 
- 	originalStdout *os.File
 
- 	storeRoot      string
 
- }
 
- func (sut *PsSuite) BeforeTest(suiteName, testName string) {
 
- 	ctx := context.Background()
 
- 	ctx = apicontext.WithCurrentContext(ctx, "example")
 
- 	dir, err := ioutil.TempDir("", "store")
 
- 	require.Nil(sut.T(), err)
 
- 	s, err := store.New(
 
- 		store.WithRoot(dir),
 
- 	)
 
- 	require.Nil(sut.T(), err)
 
- 	err = s.Create("example", store.TypedContext{
 
- 		Type: "example",
 
- 	})
 
- 	require.Nil(sut.T(), err)
 
- 	sut.storeRoot = dir
 
- 	ctx = store.WithContextStore(ctx, s)
 
- 	sut.ctx = ctx
 
- 	sut.originalStdout = os.Stdout
 
- 	r, w, err := os.Pipe()
 
- 	require.Nil(sut.T(), err)
 
- 	os.Stdout = w
 
- 	sut.writer = w
 
- 	sut.reader = r
 
- }
 
- func (sut *PsSuite) getStdOut() string {
 
- 	err := sut.writer.Close()
 
- 	require.Nil(sut.T(), err)
 
- 	out, _ := ioutil.ReadAll(sut.reader)
 
- 	return string(out)
 
- }
 
- func (sut *PsSuite) AfterTest(suiteName, testName string) {
 
- 	os.Stdout = sut.originalStdout
 
- 	err := os.RemoveAll(sut.storeRoot)
 
- 	require.Nil(sut.T(), err)
 
- }
 
- func (sut *PsSuite) TestPs() {
 
- 	opts := psOpts{
 
- 		quiet: false,
 
- 	}
 
- 	err := runPs(sut.ctx, opts)
 
- 	assert.NilError(sut.T(), err)
 
- 	golden.Assert(sut.T(), sut.getStdOut(), "ps-out.golden")
 
- }
 
- func (sut *PsSuite) TestPsQuiet() {
 
- 	opts := psOpts{
 
- 		quiet: true,
 
- 	}
 
- 	err := runPs(sut.ctx, opts)
 
- 	assert.NilError(sut.T(), err)
 
- 	golden.Assert(sut.T(), sut.getStdOut(), "ps-out-quiet.golden")
 
- }
 
- func TestPs(t *testing.T) {
 
- 	suite.Run(t, new(PsSuite))
 
- }
 
 
  |