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, &params.SecretBackendRotateWatchResult{})
    38  		*(result.(*params.SecretBackendRotateWatchResult)) = params.SecretBackendRotateWatchResult{
    39  			Error: &params.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, &params.ErrorResults{})
    58  		*(result.(*params.ErrorResults)) = params.ErrorResults{
    59  			[]params.ErrorResult{{
    60  				Error: &params.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  }