github.com/makyo/juju@v0.0.0-20160425123129-2608902037e9/provider/gce/provider_test.go (about)

     1  // Copyright 2014 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package gce_test
     5  
     6  import (
     7  	jc "github.com/juju/testing/checkers"
     8  	gc "gopkg.in/check.v1"
     9  
    10  	"github.com/juju/juju/cloud"
    11  	"github.com/juju/juju/environs"
    12  	"github.com/juju/juju/provider/gce"
    13  )
    14  
    15  type providerSuite struct {
    16  	gce.BaseSuite
    17  
    18  	provider environs.EnvironProvider
    19  }
    20  
    21  var _ = gc.Suite(&providerSuite{})
    22  
    23  func (s *providerSuite) SetUpTest(c *gc.C) {
    24  	s.BaseSuite.SetUpTest(c)
    25  
    26  	var err error
    27  	s.provider, err = environs.Provider("gce")
    28  	c.Check(err, jc.ErrorIsNil)
    29  }
    30  
    31  func (s *providerSuite) TestRegistered(c *gc.C) {
    32  	c.Assert(s.provider, gc.Equals, gce.Provider)
    33  }
    34  
    35  func (s *providerSuite) TestOpen(c *gc.C) {
    36  	env, err := s.provider.Open(s.Config)
    37  	c.Check(err, jc.ErrorIsNil)
    38  
    39  	envConfig := env.Config()
    40  	c.Assert(envConfig.Name(), gc.Equals, "testenv")
    41  }
    42  
    43  func (s *providerSuite) TestBootstrapConfig(c *gc.C) {
    44  	cfg, err := s.provider.BootstrapConfig(environs.BootstrapConfigParams{
    45  		Config: s.Config,
    46  		Credentials: cloud.NewCredential(
    47  			cloud.OAuth2AuthType,
    48  			map[string]string{
    49  				"project-id":   "x",
    50  				"client-id":    "y",
    51  				"client-email": "zz@example.com",
    52  				"private-key":  "why",
    53  			},
    54  		),
    55  	})
    56  	c.Check(err, jc.ErrorIsNil)
    57  	c.Check(cfg, gc.NotNil)
    58  }
    59  
    60  func (s *providerSuite) TestValidate(c *gc.C) {
    61  	validCfg, err := s.provider.Validate(s.Config, nil)
    62  	c.Check(err, jc.ErrorIsNil)
    63  
    64  	validAttrs := validCfg.AllAttrs()
    65  	c.Assert(s.Config.AllAttrs(), gc.DeepEquals, validAttrs)
    66  }
    67  
    68  func (s *providerSuite) TestSecretAttrs(c *gc.C) {
    69  	obtainedAttrs, err := s.provider.SecretAttrs(s.Config)
    70  	c.Check(err, jc.ErrorIsNil)
    71  
    72  	expectedAttrs := map[string]string{"private-key": gce.PrivateKey}
    73  	c.Assert(obtainedAttrs, gc.DeepEquals, expectedAttrs)
    74  
    75  }
    76  
    77  func (s *providerSuite) TestUpgradeConfig(c *gc.C) {
    78  	c.Assert(s.provider, gc.Implements, new(environs.ModelConfigUpgrader))
    79  	upgrader := s.provider.(environs.ModelConfigUpgrader)
    80  
    81  	_, ok := s.Config.StorageDefaultBlockSource()
    82  	c.Assert(ok, jc.IsFalse)
    83  
    84  	outConfig, err := upgrader.UpgradeConfig(s.Config)
    85  	c.Assert(err, jc.ErrorIsNil)
    86  	source, ok := outConfig.StorageDefaultBlockSource()
    87  	c.Assert(ok, jc.IsTrue)
    88  	c.Assert(source, gc.Equals, "gce")
    89  }