github.com/altoros/juju-vmware@v0.0.0-20150312064031-f19ae857ccca/upgrades/deprecatedenvsettings_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  	jc "github.com/juju/testing/checkers"
     8  	gc "gopkg.in/check.v1"
     9  
    10  	jujutesting "github.com/juju/juju/juju/testing"
    11  	"github.com/juju/juju/state"
    12  	"github.com/juju/juju/upgrades"
    13  )
    14  
    15  type processDeprecatedEnvSettingsSuite struct {
    16  	jujutesting.JujuConnSuite
    17  	ctx upgrades.Context
    18  }
    19  
    20  var _ = gc.Suite(&processDeprecatedEnvSettingsSuite{})
    21  
    22  func (s *processDeprecatedEnvSettingsSuite) SetUpTest(c *gc.C) {
    23  	s.JujuConnSuite.SetUpTest(c)
    24  	apiState, _ := s.OpenAPIAsNewMachine(c, state.JobManageEnviron)
    25  	s.ctx = &mockContext{
    26  		agentConfig: &mockAgentConfig{dataDir: s.DataDir()},
    27  		apiState:    apiState,
    28  		state:       s.State,
    29  	}
    30  	// Add in old environment settings.
    31  	newCfg := map[string]interface{}{
    32  		"public-bucket":         "foo",
    33  		"public-bucket-region":  "bar",
    34  		"public-bucket-url":     "shazbot",
    35  		"default-instance-type": "vulch",
    36  		"default-image-id":      "1234",
    37  		"shared-storage-port":   1234,
    38  		"tools-url":             "some.special.url.com",
    39  	}
    40  	err := s.State.UpdateEnvironConfig(newCfg, nil, nil)
    41  	c.Assert(err, jc.ErrorIsNil)
    42  }
    43  
    44  func (s *processDeprecatedEnvSettingsSuite) TestEnvSettingsSet(c *gc.C) {
    45  	cfg, err := s.State.EnvironConfig()
    46  	c.Assert(err, jc.ErrorIsNil)
    47  	allAttrs := cfg.AllAttrs()
    48  	c.Assert(allAttrs["public-bucket"], gc.Equals, "foo")
    49  	c.Assert(allAttrs["public-bucket-region"], gc.Equals, "bar")
    50  	c.Assert(allAttrs["public-bucket-url"], gc.Equals, "shazbot")
    51  	c.Assert(allAttrs["default-instance-type"], gc.Equals, "vulch")
    52  	c.Assert(allAttrs["default-image-id"], gc.Equals, "1234")
    53  	c.Assert(allAttrs["shared-storage-port"], gc.Equals, 1234)
    54  	c.Assert(allAttrs["tools-url"], gc.Equals, "some.special.url.com")
    55  }
    56  
    57  func (s *processDeprecatedEnvSettingsSuite) assertConfigProcessed(c *gc.C) {
    58  	cfg, err := s.State.EnvironConfig()
    59  	c.Assert(err, jc.ErrorIsNil)
    60  	allAttrs := cfg.AllAttrs()
    61  	for _, deprecated := range []string{
    62  		"public-bucket", "public-bucket-region", "public-bucket-url",
    63  		"default-image-id", "default-instance-type", "shared-storage-port", "tools-url",
    64  	} {
    65  		_, ok := allAttrs[deprecated]
    66  		c.Assert(ok, jc.IsFalse)
    67  	}
    68  }
    69  
    70  func (s *processDeprecatedEnvSettingsSuite) TestOldConfigRemoved(c *gc.C) {
    71  	err := upgrades.ProcessDeprecatedEnvSettings(s.ctx)
    72  	c.Assert(err, jc.ErrorIsNil)
    73  	s.assertConfigProcessed(c)
    74  }
    75  
    76  func (s *processDeprecatedEnvSettingsSuite) TestIdempotent(c *gc.C) {
    77  	err := upgrades.ProcessDeprecatedEnvSettings(s.ctx)
    78  	c.Assert(err, jc.ErrorIsNil)
    79  	s.assertConfigProcessed(c)
    80  
    81  	err = upgrades.ProcessDeprecatedEnvSettings(s.ctx)
    82  	c.Assert(err, jc.ErrorIsNil)
    83  	s.assertConfigProcessed(c)
    84  }