github.com/makyo/juju@v0.0.0-20160425123129-2608902037e9/state/utils/instance_test.go (about)

     1  // Copyright 2014 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package utils_test
     5  
     6  import (
     7  	"github.com/juju/errors"
     8  	jc "github.com/juju/testing/checkers"
     9  	gc "gopkg.in/check.v1"
    10  
    11  	"github.com/juju/juju/environs"
    12  	"github.com/juju/juju/juju/testing"
    13  	"github.com/juju/juju/state"
    14  	"github.com/juju/juju/state/utils"
    15  )
    16  
    17  type instanceSuite struct {
    18  	testing.JujuConnSuite
    19  }
    20  
    21  var _ = gc.Suite(&instanceSuite{})
    22  
    23  func (s *instanceSuite) TestAvailabilityZone(c *gc.C) {
    24  	env := fakeZonedEnv{Environ: s.Environ}
    25  	env.instZones = []string{"a_zone"}
    26  	s.PatchValue(utils.PatchedGetEnvironment, func(st *state.State) (environs.Environ, error) {
    27  		return &env, nil
    28  	})
    29  
    30  	zone, err := utils.AvailabilityZone(s.State, "id-1")
    31  	c.Assert(err, jc.ErrorIsNil)
    32  
    33  	c.Check(zone, gc.Equals, "a_zone")
    34  }
    35  
    36  func (s *instanceSuite) TestAvailabilityZoneUnsupported(c *gc.C) {
    37  	// Trigger a not supported error.
    38  	s.AssertConfigParameterUpdated(c, "broken", "InstanceAvailabilityZoneNames")
    39  
    40  	_, err := utils.AvailabilityZone(s.State, "id-1")
    41  	c.Check(err, jc.Satisfies, errors.IsNotSupported)
    42  }