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  }