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  }