github.com/juju/juju@v0.0.0-20240327075706-a90865de2538/api/controller/secretsbackendmanager/client_test.go (about) 1 // Copyright 2023 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package secretsbackendmanager_test 5 6 import ( 7 jc "github.com/juju/testing/checkers" 8 gc "gopkg.in/check.v1" 9 10 "github.com/juju/juju/api/base/testing" 11 "github.com/juju/juju/api/controller/secretsbackendmanager" 12 "github.com/juju/juju/rpc/params" 13 coretesting "github.com/juju/juju/testing" 14 ) 15 16 var _ = gc.Suite(&SecretBackendsSuite{}) 17 18 type SecretBackendsSuite struct { 19 coretesting.BaseSuite 20 } 21 22 func (s *SecretBackendsSuite) TestNewClient(c *gc.C) { 23 apiCaller := testing.APICallerFunc(func(objType string, version int, id, request string, arg, result interface{}) error { 24 return nil 25 }) 26 client := secretsbackendmanager.NewClient(apiCaller) 27 c.Assert(client, gc.NotNil) 28 } 29 30 func (s *SecretBackendsSuite) TestWatchSecretsRotationChanges(c *gc.C) { 31 apiCaller := testing.APICallerFunc(func(objType string, version int, id, request string, arg, result interface{}) error { 32 c.Check(objType, gc.Equals, "SecretBackendsManager") 33 c.Check(version, gc.Equals, 0) 34 c.Check(id, gc.Equals, "") 35 c.Check(request, gc.Equals, "WatchSecretBackendsRotateChanges") 36 c.Check(arg, gc.IsNil) 37 c.Assert(result, gc.FitsTypeOf, ¶ms.SecretBackendRotateWatchResult{}) 38 *(result.(*params.SecretBackendRotateWatchResult)) = params.SecretBackendRotateWatchResult{ 39 Error: ¶ms.Error{Message: "FAIL"}, 40 } 41 return nil 42 }) 43 client := secretsbackendmanager.NewClient(apiCaller) 44 _, err := client.WatchTokenRotationChanges() 45 c.Assert(err, gc.ErrorMatches, "FAIL") 46 } 47 48 func (s *SecretBackendsSuite) TestRotateBackendTokens(c *gc.C) { 49 apiCaller := testing.APICallerFunc(func(objType string, version int, id, request string, arg, result interface{}) error { 50 c.Check(objType, gc.Equals, "SecretBackendsManager") 51 c.Check(version, gc.Equals, 0) 52 c.Check(id, gc.Equals, "") 53 c.Check(request, gc.Equals, "RotateBackendTokens") 54 c.Check(arg, jc.DeepEquals, params.RotateSecretBackendArgs{ 55 BackendIDs: []string{"backend-id"}, 56 }) 57 c.Assert(result, gc.FitsTypeOf, ¶ms.ErrorResults{}) 58 *(result.(*params.ErrorResults)) = params.ErrorResults{ 59 []params.ErrorResult{{ 60 Error: ¶ms.Error{Message: "boom"}, 61 }}, 62 } 63 return nil 64 }) 65 client := secretsbackendmanager.NewClient(apiCaller) 66 err := client.RotateBackendTokens("backend-id") 67 c.Assert(err, gc.ErrorMatches, "boom") 68 }