github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/apiserver/common/credentialcommon/cloudcredential_test.go (about) 1 // Copyright 2018 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package credentialcommon_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 "github.com/juju/juju/apiserver/common" 13 "github.com/juju/juju/apiserver/common/credentialcommon" 14 "github.com/juju/juju/apiserver/params" 15 ) 16 17 type CredentialSuite struct { 18 testing.IsolationSuite 19 20 backend *testBackend 21 api *credentialcommon.CredentialManagerAPI 22 } 23 24 var _ = gc.Suite(&CredentialSuite{}) 25 26 func (s *CredentialSuite) SetUpTest(c *gc.C) { 27 s.IsolationSuite.SetUpTest(c) 28 29 s.backend = newMockBackend() 30 s.api = credentialcommon.NewCredentialManagerAPI(s.backend) 31 } 32 33 func (s *CredentialSuite) TestInvalidateModelCredential(c *gc.C) { 34 result, err := s.api.InvalidateModelCredential(params.InvalidateCredentialArg{"not again"}) 35 c.Assert(err, jc.ErrorIsNil) 36 c.Assert(result, gc.DeepEquals, params.ErrorResult{}) 37 s.backend.CheckCalls(c, []testing.StubCall{ 38 {"InvalidateModelCredential", []interface{}{"not again"}}, 39 }) 40 } 41 42 func (s *CredentialSuite) TestInvalidateModelCredentialError(c *gc.C) { 43 expected := errors.New("boom") 44 s.backend.SetErrors(expected) 45 result, err := s.api.InvalidateModelCredential(params.InvalidateCredentialArg{"not again"}) 46 c.Assert(err, jc.ErrorIsNil) 47 c.Assert(result, gc.DeepEquals, params.ErrorResult{Error: common.ServerError(expected)}) 48 s.backend.CheckCalls(c, []testing.StubCall{ 49 {"InvalidateModelCredential", []interface{}{"not again"}}, 50 }) 51 } 52 53 func newMockBackend() *testBackend { 54 return &testBackend{Stub: &testing.Stub{}} 55 } 56 57 type testBackend struct { 58 *testing.Stub 59 } 60 61 func (b *testBackend) InvalidateModelCredential(reason string) error { 62 b.AddCall("InvalidateModelCredential", reason) 63 return b.NextErr() 64 }