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, ¶ms.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 }