github.com/Pankov404/juju@v0.0.0-20150703034450-be266991dceb/upgrades/customimagemetadata_test.go (about) 1 // Copyright 2014 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package upgrades_test 5 6 import ( 7 "bytes" 8 9 jc "github.com/juju/testing/checkers" 10 gc "gopkg.in/check.v1" 11 "gopkg.in/mgo.v2" 12 13 "github.com/juju/juju/agent" 14 "github.com/juju/juju/environs" 15 "github.com/juju/juju/environs/filestorage" 16 jujutesting "github.com/juju/juju/juju/testing" 17 "github.com/juju/juju/state/storage" 18 statetesting "github.com/juju/juju/state/testing" 19 "github.com/juju/juju/upgrades" 20 ) 21 22 type migrateCustomImageMetadataStorageSuite struct { 23 jujutesting.JujuConnSuite 24 } 25 26 var _ = gc.Suite(&migrateCustomImageMetadataStorageSuite{}) 27 28 func (s *migrateCustomImageMetadataStorageSuite) TestMigrateCustomImageMetadata(c *gc.C) { 29 stor := s.Environ.(environs.EnvironStorage).Storage() 30 for path, content := range customImageMetadata { 31 err := stor.Put(path, bytes.NewReader(content), int64(len(content))) 32 c.Assert(err, jc.ErrorIsNil) 33 } 34 s.testMigrateCustomImageMetadata(c, &mockAgentConfig{}) 35 } 36 37 func (s *migrateCustomImageMetadataStorageSuite) TestMigrateCustomImageMetadataLocalstorage(c *gc.C) { 38 storageDir := c.MkDir() 39 stor, err := filestorage.NewFileStorageWriter(storageDir) 40 c.Assert(err, jc.ErrorIsNil) 41 for path, content := range customImageMetadata { 42 err := stor.Put(path, bytes.NewReader(content), int64(len(content))) 43 c.Assert(err, jc.ErrorIsNil) 44 } 45 s.testMigrateCustomImageMetadata(c, &mockAgentConfig{ 46 values: map[string]string{ 47 agent.ProviderType: "local", 48 agent.StorageDir: storageDir, 49 }, 50 }) 51 } 52 53 func (s *migrateCustomImageMetadataStorageSuite) testMigrateCustomImageMetadata(c *gc.C, agentConfig agent.Config) { 54 var stor statetesting.MapStorage 55 s.PatchValue(upgrades.NewStateStorage, func(string, *mgo.Session) storage.Storage { 56 return &stor 57 }) 58 err := upgrades.MigrateCustomImageMetadata(s.State, agentConfig) 59 c.Assert(err, jc.ErrorIsNil) 60 c.Assert(stor.Map, gc.DeepEquals, customImageMetadata) 61 }