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 }