github.com/juju/juju@v0.0.0-20240430160146-1752b71fcf00/worker/uniter/runner/jujuc/state-delete_test.go (about) 1 // Copyright 2020 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package jujuc_test 5 6 import ( 7 "github.com/juju/cmd/v3" 8 "github.com/juju/cmd/v3/cmdtesting" 9 jc "github.com/juju/testing/checkers" 10 gc "gopkg.in/check.v1" 11 12 "github.com/juju/juju/worker/uniter/runner/jujuc" 13 ) 14 15 type stateDeleteSuite struct { 16 stateSuite 17 } 18 19 var _ = gc.Suite(&stateDeleteSuite{}) 20 21 func (s *stateDeleteSuite) TestHelp(c *gc.C) { 22 toolCmd, err := jujuc.NewCommand(nil, "state-delete") 23 c.Assert(err, jc.ErrorIsNil) 24 25 ctx := cmdtesting.Context(c) 26 code := cmd.Main(jujuc.NewJujucCommandWrappedForTest(toolCmd), ctx, []string{"--help"}) 27 c.Check(code, gc.Equals, 0) 28 c.Assert(bufferString(ctx.Stderr), gc.Equals, "") 29 30 var expectedHelp = ` 31 Usage: state-delete <key> 32 33 Summary: 34 delete server-side-state key value pair 35 36 Details: 37 state-delete deletes the value of the server side state specified by key. 38 39 See also: 40 state-get 41 state-set 42 `[1:] 43 c.Assert(bufferString(ctx.Stdout), gc.Equals, expectedHelp) 44 } 45 46 type runStateDeleteCmd struct { 47 description string 48 args []string 49 out string 50 expect func() 51 } 52 53 func (s *stateDeleteSuite) TestStateDelete(c *gc.C) { 54 runStateDeleteCmdTests := []runStateDeleteCmd{ 55 { 56 description: "delete one", 57 args: []string{"five"}, 58 expect: s.expectStateDeleteOne, 59 }, 60 61 { 62 description: "no arg", 63 args: []string{""}, 64 out: "", 65 }, 66 } 67 for i, test := range runStateDeleteCmdTests { 68 c.Logf("test %d of %d: %s", i+1, len(runStateDeleteCmdTests), test.description) 69 defer s.setupMocks(c).Finish() 70 if test.expect != nil { 71 test.expect() 72 } 73 74 toolCmd, err := jujuc.NewCommand(s.mockContext, "state-delete") 75 c.Assert(err, jc.ErrorIsNil) 76 77 ctx := cmdtesting.Context(c) 78 code := cmd.Main(jujuc.NewJujucCommandWrappedForTest(toolCmd), ctx, test.args) 79 c.Check(code, gc.Equals, 0) 80 c.Assert(bufferString(ctx.Stderr), gc.Equals, "") 81 c.Assert(bufferString(ctx.Stdout), gc.Equals, test.out) 82 } 83 }