github.com/juju/juju@v0.0.0-20240430160146-1752b71fcf00/api/client/credentialmanager/client_test.go (about)

     1  // Copyright 2018 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package credentialmanager_test
     5  
     6  import (
     7  	"github.com/juju/errors"
     8  	jc "github.com/juju/testing/checkers"
     9  	"go.uber.org/mock/gomock"
    10  	gc "gopkg.in/check.v1"
    11  
    12  	basemocks "github.com/juju/juju/api/base/mocks"
    13  	"github.com/juju/juju/api/client/credentialmanager"
    14  	apiservererrors "github.com/juju/juju/apiserver/errors"
    15  	"github.com/juju/juju/rpc/params"
    16  )
    17  
    18  var _ = gc.Suite(&CredentialManagerSuite{})
    19  
    20  type CredentialManagerSuite struct {
    21  }
    22  
    23  func (s *CredentialManagerSuite) TestInvalidateModelCredential(c *gc.C) {
    24  	ctrl := gomock.NewController(c)
    25  	defer ctrl.Finish()
    26  	args := params.InvalidateCredentialArg{Reason: "auth fail"}
    27  	result := new(params.ErrorResult)
    28  	results := params.ErrorResult{}
    29  
    30  	mockFacadeCaller := basemocks.NewMockFacadeCaller(ctrl)
    31  	mockFacadeCaller.EXPECT().FacadeCall("InvalidateModelCredential", args, result).SetArg(2, results).Return(nil)
    32  	client := credentialmanager.NewClientFromCaller(mockFacadeCaller)
    33  
    34  	err := client.InvalidateModelCredential("auth fail")
    35  	c.Assert(err, jc.ErrorIsNil)
    36  }
    37  
    38  func (s *CredentialManagerSuite) TestInvalidateModelCredentialBackendFailure(c *gc.C) {
    39  	ctrl := gomock.NewController(c)
    40  	defer ctrl.Finish()
    41  	args := params.InvalidateCredentialArg{}
    42  	result := new(params.ErrorResult)
    43  	results := params.ErrorResult{Error: apiservererrors.ServerError(errors.New("boom"))}
    44  
    45  	mockFacadeCaller := basemocks.NewMockFacadeCaller(ctrl)
    46  	mockFacadeCaller.EXPECT().FacadeCall("InvalidateModelCredential", args, result).SetArg(2, results).Return(nil)
    47  	client := credentialmanager.NewClientFromCaller(mockFacadeCaller)
    48  
    49  	err := client.InvalidateModelCredential("")
    50  	c.Assert(err, gc.ErrorMatches, "boom")
    51  }
    52  
    53  func (s *CredentialManagerSuite) TestInvalidateModelCredentialError(c *gc.C) {
    54  	ctrl := gomock.NewController(c)
    55  	defer ctrl.Finish()
    56  	args := params.InvalidateCredentialArg{}
    57  	result := new(params.ErrorResult)
    58  
    59  	mockFacadeCaller := basemocks.NewMockFacadeCaller(ctrl)
    60  	mockFacadeCaller.EXPECT().FacadeCall("InvalidateModelCredential", args, result).Return(errors.New("foo"))
    61  	client := credentialmanager.NewClientFromCaller(mockFacadeCaller)
    62  
    63  	err := client.InvalidateModelCredential("")
    64  	c.Assert(err, gc.ErrorMatches, "foo")
    65  }