github.com/cloud-green/juju@v0.0.0-20151002100041-a00291338d3d/provider/cloudsigma/environ_test.go (about) 1 // Copyright 2015 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package cloudsigma 5 6 import ( 7 gc "gopkg.in/check.v1" 8 9 "github.com/juju/juju/constraints" 10 "github.com/juju/juju/environs" 11 "github.com/juju/juju/environs/simplestreams" 12 "github.com/juju/juju/testing" 13 "github.com/juju/utils/arch" 14 ) 15 16 var _ environs.Environ = (*environ)(nil) 17 var _ simplestreams.HasRegion = (*environ)(nil) 18 var _ simplestreams.MetadataValidator = (*environ)(nil) 19 20 type environSuite struct { 21 testing.BaseSuite 22 } 23 24 var _ = gc.Suite(&environSuite{}) 25 26 func (s *environSuite) SetUpSuite(c *gc.C) { 27 s.BaseSuite.SetUpSuite(c) 28 } 29 30 func (s *environSuite) TearDownSuite(c *gc.C) { 31 s.BaseSuite.TearDownSuite(c) 32 } 33 34 func (s *environSuite) SetUpTest(c *gc.C) { 35 s.BaseSuite.SetUpTest(c) 36 } 37 38 func (s *environSuite) TearDownTest(c *gc.C) { 39 s.BaseSuite.TearDownTest(c) 40 } 41 42 func (s *environSuite) TestBase(c *gc.C) { 43 s.PatchValue(&newClient, func(*environConfig) (*environClient, error) { 44 return nil, nil 45 }) 46 47 baseConfig := newConfig(c, validAttrs().Merge(testing.Attrs{"name": "testname"})) 48 env, err := environs.New(baseConfig) 49 c.Assert(err, gc.IsNil) 50 env.(*environ).supportedArchitectures = []string{arch.AMD64} 51 52 cfg := env.Config() 53 c.Assert(cfg, gc.NotNil) 54 c.Check(cfg.Name(), gc.Equals, "testname") 55 56 c.Check(env.PrecheckInstance("", constraints.Value{}, ""), gc.IsNil) 57 58 hasRegion, ok := env.(simplestreams.HasRegion) 59 c.Check(ok, gc.Equals, true) 60 c.Assert(hasRegion, gc.NotNil) 61 62 cloudSpec, err := hasRegion.Region() 63 c.Check(err, gc.IsNil) 64 c.Check(cloudSpec.Region, gc.Not(gc.Equals), "") 65 c.Check(cloudSpec.Endpoint, gc.Not(gc.Equals), "") 66 67 archs, err := env.SupportedArchitectures() 68 c.Check(err, gc.IsNil) 69 c.Assert(archs, gc.NotNil) 70 c.Assert(archs, gc.HasLen, 1) 71 c.Check(archs[0], gc.Equals, arch.AMD64) 72 73 validator, err := env.ConstraintsValidator() 74 c.Check(validator, gc.NotNil) 75 c.Check(err, gc.IsNil) 76 77 c.Check(env.SupportsUnitPlacement(), gc.ErrorMatches, "SupportsUnitPlacement not implemented") 78 79 c.Check(env.OpenPorts(nil), gc.IsNil) 80 c.Check(env.ClosePorts(nil), gc.IsNil) 81 82 ports, err := env.Ports() 83 c.Check(ports, gc.IsNil) 84 c.Check(err, gc.IsNil) 85 }