github.com/altoros/juju-vmware@v0.0.0-20150312064031-f19ae857ccca/upgrades/instance_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  	"github.com/juju/juju/instance"
    11  	"github.com/juju/juju/state"
    12  	"github.com/juju/juju/testing"
    13  	"github.com/juju/juju/upgrades"
    14  )
    15  
    16  type instanceSuite struct {
    17  	testing.FakeJujuHomeSuite
    18  	ctx upgrades.Context
    19  }
    20  
    21  var _ = gc.Suite(&instanceSuite{})
    22  
    23  func (s *instanceSuite) SetUpTest(c *gc.C) {
    24  	s.FakeJujuHomeSuite.SetUpTest(c)
    25  
    26  	s.ctx = &mockContext{}
    27  }
    28  
    29  func (s *instanceSuite) TestAddAvaililityZoneToInstanceData(c *gc.C) {
    30  	var stArg *state.State
    31  	s.PatchValue(upgrades.AddAZToInstData,
    32  		func(st *state.State, azFunc func(*state.State, instance.Id) (string, error)) error {
    33  			stArg = st
    34  			// We can't compare functions for equality so we trust that
    35  			// azFunc is correct.
    36  			return nil
    37  		},
    38  	)
    39  
    40  	err := upgrades.AddAvaililityZoneToInstanceData(s.ctx)
    41  	c.Assert(err, jc.ErrorIsNil)
    42  
    43  	c.Check(stArg, gc.Equals, s.ctx.State())
    44  }