github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/api/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  	"github.com/juju/testing"
     9  	jc "github.com/juju/testing/checkers"
    10  	gc "gopkg.in/check.v1"
    11  
    12  	apitesting "github.com/juju/juju/api/base/testing"
    13  	"github.com/juju/juju/api/credentialmanager"
    14  	"github.com/juju/juju/apiserver/common"
    15  	"github.com/juju/juju/apiserver/params"
    16  )
    17  
    18  var _ = gc.Suite(&CredentialManagerSuite{})
    19  
    20  type CredentialManagerSuite struct {
    21  	testing.IsolationSuite
    22  }
    23  
    24  func (s *CredentialManagerSuite) TestInvalidateModelCredential(c *gc.C) {
    25  	apiCaller := apitesting.APICallerFunc(func(objType string, version int, id, request string, arg, result interface{}) error {
    26  		c.Check(objType, gc.Equals, "CredentialManager")
    27  		c.Check(request, gc.Equals, "InvalidateModelCredential")
    28  		c.Assert(arg, gc.Equals, params.InvalidateCredentialArg{Reason: "auth fail"})
    29  		c.Assert(result, gc.FitsTypeOf, &params.ErrorResult{})
    30  		*(result.(*params.ErrorResult)) = params.ErrorResult{}
    31  		return nil
    32  	})
    33  
    34  	client := credentialmanager.NewClient(apiCaller)
    35  	err := client.InvalidateModelCredential("auth fail")
    36  	c.Assert(err, jc.ErrorIsNil)
    37  }
    38  
    39  func (s *CredentialManagerSuite) TestInvalidateModelCredentialBackendFailure(c *gc.C) {
    40  	apiCaller := apitesting.APICallerFunc(func(objType string, version int, id, request string, arg, result interface{}) error {
    41  		*(result.(*params.ErrorResult)) = params.ErrorResult{Error: common.ServerError(errors.New("boom"))}
    42  		return nil
    43  	})
    44  
    45  	client := credentialmanager.NewClient(apiCaller)
    46  	err := client.InvalidateModelCredential("")
    47  	c.Assert(err, gc.ErrorMatches, "boom")
    48  }
    49  
    50  func (s *CredentialManagerSuite) TestInvalidateModelCredentialError(c *gc.C) {
    51  	apiCaller := apitesting.APICallerFunc(func(objType string, version int, id, request string, arg, result interface{}) error {
    52  		return errors.New("foo")
    53  	})
    54  
    55  	client := credentialmanager.NewClient(apiCaller)
    56  	err := client.InvalidateModelCredential("")
    57  	c.Assert(err, gc.ErrorMatches, "foo")
    58  }