github.com/axw/juju@v0.0.0-20161005053422-4bd6544d08d4/state/images_test.go (about) 1 // Copyright 2012, 2013 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package state_test 5 6 import ( 7 "strings" 8 9 jc "github.com/juju/testing/checkers" 10 "github.com/juju/utils/set" 11 gc "gopkg.in/check.v1" 12 "gopkg.in/mgo.v2" 13 14 "github.com/juju/juju/state" 15 "github.com/juju/juju/state/imagestorage" 16 ) 17 18 var _ = gc.Suite(&ImageSuite{}) 19 20 type ImageSuite struct { 21 ConnSuite 22 } 23 24 func (s *ImageSuite) TestStorage(c *gc.C) { 25 session := s.State.MongoSession() 26 collectionNames, err := session.DB("osimages").CollectionNames() 27 c.Assert(err, gc.IsNil) 28 nameSet := set.NewStrings(collectionNames...) 29 c.Assert(nameSet.Contains("imagemetadata"), jc.IsFalse) 30 31 storage := s.State.ImageStorage() 32 err = storage.AddImage(strings.NewReader(""), &imagestorage.Metadata{}) 33 c.Assert(err, gc.IsNil) 34 35 collectionNames, err = session.DB("osimages").CollectionNames() 36 c.Assert(err, gc.IsNil) 37 nameSet = set.NewStrings(collectionNames...) 38 c.Assert(nameSet.Contains("imagemetadata"), jc.IsTrue) 39 } 40 41 func (s *ImageSuite) TestStorageParams(c *gc.C) { 42 env, err := s.State.Model() 43 c.Assert(err, gc.IsNil) 44 45 var called bool 46 s.PatchValue(state.ImageStorageNewStorage, func( 47 session *mgo.Session, 48 modelUUID string, 49 ) imagestorage.Storage { 50 called = true 51 c.Assert(modelUUID, gc.Equals, env.UUID()) 52 c.Assert(session, gc.NotNil) 53 return nil 54 }) 55 56 s.State.ImageStorage() 57 c.Assert(called, jc.IsTrue) 58 }