github.com/juju/juju@v0.0.0-20240430160146-1752b71fcf00/worker/uniter/runner/jujuc/secret-remove_test.go (about) 1 // Copyright 2021 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 SecretRemoveSuite struct { 16 ContextSuite 17 } 18 19 var _ = gc.Suite(&SecretRemoveSuite{}) 20 21 func (s *SecretRemoveSuite) TestRemoveSecretInvalidArgs(c *gc.C) { 22 hctx, _ := s.ContextSuite.NewHookContext() 23 24 for _, t := range []struct { 25 args []string 26 err string 27 }{ 28 { 29 args: []string{}, 30 err: "ERROR missing secret URI", 31 }, { 32 args: []string{"foo"}, 33 err: `ERROR secret URI "foo" not valid`, 34 }, 35 } { 36 com, err := jujuc.NewCommand(hctx, "secret-remove") 37 c.Assert(err, jc.ErrorIsNil) 38 ctx := cmdtesting.Context(c) 39 code := cmd.Main(jujuc.NewJujucCommandWrappedForTest(com), ctx, t.args) 40 41 c.Assert(code, gc.Equals, 2) 42 c.Assert(bufferString(ctx.Stderr), gc.Equals, t.err+"\n") 43 } 44 } 45 46 func (s *SecretRemoveSuite) TestRemoveSecret(c *gc.C) { 47 hctx, _ := s.ContextSuite.NewHookContext() 48 49 com, err := jujuc.NewCommand(hctx, "secret-remove") 50 c.Assert(err, jc.ErrorIsNil) 51 ctx := cmdtesting.Context(c) 52 code := cmd.Main(jujuc.NewJujucCommandWrappedForTest(com), ctx, []string{ 53 "secret:9m4e2mr0ui3e8a215n4g", 54 }) 55 56 c.Assert(code, gc.Equals, 0) 57 s.Stub.CheckCallNames(c, "RemoveSecret") 58 call := s.Stub.Calls()[0] 59 c.Assert(call.Args, gc.HasLen, 2) 60 c.Assert(call.Args[0], gc.Equals, "secret:9m4e2mr0ui3e8a215n4g") 61 c.Assert(call.Args[1], gc.IsNil) 62 } 63 64 func (s *SecretRemoveSuite) TestRemoveSecretRevision(c *gc.C) { 65 hctx, _ := s.ContextSuite.NewHookContext() 66 67 com, err := jujuc.NewCommand(hctx, "secret-remove") 68 c.Assert(err, jc.ErrorIsNil) 69 ctx := cmdtesting.Context(c) 70 code := cmd.Main(jujuc.NewJujucCommandWrappedForTest(com), ctx, []string{ 71 "secret:9m4e2mr0ui3e8a215n4g", "--revision", "666", 72 }) 73 74 c.Assert(code, gc.Equals, 0) 75 s.Stub.CheckCallNames(c, "RemoveSecret") 76 call := s.Stub.Calls()[0] 77 c.Assert(call.Args, gc.HasLen, 2) 78 c.Assert(call.Args[0], gc.Equals, "secret:9m4e2mr0ui3e8a215n4g") 79 c.Assert(*(call.Args[1].(*int)), gc.Equals, 666) 80 }