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 }