github.com/mhilton/juju-juju@v0.0.0-20150901100907-a94dd2c73455/apiserver/imagemetadata/package_test.go (about) 1 // Copyright 2015 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package imagemetadata_test 5 6 import ( 7 stdtesting "testing" 8 9 "github.com/juju/names" 10 jc "github.com/juju/testing/checkers" 11 gc "gopkg.in/check.v1" 12 13 "github.com/juju/juju/apiserver/common" 14 "github.com/juju/juju/apiserver/imagemetadata" 15 "github.com/juju/juju/apiserver/testing" 16 "github.com/juju/juju/state/cloudimagemetadata" 17 coretesting "github.com/juju/juju/testing" 18 ) 19 20 func TestAll(t *stdtesting.T) { 21 gc.TestingT(t) 22 } 23 24 type baseImageMetadataSuite struct { 25 coretesting.BaseSuite 26 27 resources *common.Resources 28 authorizer testing.FakeAuthorizer 29 30 api *imagemetadata.API 31 state *mockState 32 33 calls []string 34 } 35 36 func (s *baseImageMetadataSuite) SetUpTest(c *gc.C) { 37 s.BaseSuite.SetUpTest(c) 38 s.resources = common.NewResources() 39 s.authorizer = testing.FakeAuthorizer{names.NewUserTag("testuser"), true} 40 41 s.calls = []string{} 42 s.state = s.constructState(c) 43 44 var err error 45 s.api, err = imagemetadata.CreateAPI(s.state, s.resources, s.authorizer) 46 c.Assert(err, jc.ErrorIsNil) 47 } 48 49 func (s *baseImageMetadataSuite) assertCalls(c *gc.C, expectedCalls []string) { 50 c.Assert(s.calls, jc.SameContents, expectedCalls) 51 } 52 53 const ( 54 findMetadata = "findMetadata" 55 saveMetadata = "saveMetadata" 56 ) 57 58 func (s *baseImageMetadataSuite) constructState(c *gc.C) *mockState { 59 return &mockState{ 60 findMetadata: func(f cloudimagemetadata.MetadataFilter) (map[cloudimagemetadata.SourceType][]cloudimagemetadata.Metadata, error) { 61 s.calls = append(s.calls, findMetadata) 62 return nil, nil 63 }, 64 saveMetadata: func(m cloudimagemetadata.Metadata) error { 65 s.calls = append(s.calls, saveMetadata) 66 return nil 67 }, 68 } 69 } 70 71 type mockState struct { 72 findMetadata func(f cloudimagemetadata.MetadataFilter) (map[cloudimagemetadata.SourceType][]cloudimagemetadata.Metadata, error) 73 saveMetadata func(m cloudimagemetadata.Metadata) error 74 } 75 76 func (st *mockState) FindMetadata(f cloudimagemetadata.MetadataFilter) (map[cloudimagemetadata.SourceType][]cloudimagemetadata.Metadata, error) { 77 return st.findMetadata(f) 78 } 79 80 func (st *mockState) SaveMetadata(m cloudimagemetadata.Metadata) error { 81 return st.saveMetadata(m) 82 }