github.com/altoros/juju-vmware@v0.0.0-20150312064031-f19ae857ccca/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.Environment()
    43  	c.Assert(err, gc.IsNil)
    44  
    45  	var called bool
    46  	s.PatchValue(state.ImageStorageNewStorage, func(
    47  		session *mgo.Session,
    48  		envUUID string,
    49  	) imagestorage.Storage {
    50  		called = true
    51  		c.Assert(envUUID, 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  }