1
// Copyright 2015 Canonical Ltd.
2
// Licensed under the AGPLv3, see LICENCE file for details.
9
jc "github.com/juju/testing/checkers"
10
gc "gopkg.in/check.v1"
12
"github.com/juju/juju/cloud"
13
"github.com/juju/juju/environs"
14
"github.com/juju/juju/provider/vsphere"
17
type providerSuite struct {
20
provider environs.EnvironProvider
21
spec environs.CloudSpec
24
var _ = gc.Suite(&providerSuite{})
26
func (s *providerSuite) SetUpTest(c *gc.C) {
27
s.BaseSuite.SetUpTest(c)
30
s.provider, err = environs.Provider("vsphere")
31
c.Check(err, jc.ErrorIsNil)
32
s.spec = vsphere.FakeCloudSpec()
35
func (s *providerSuite) TestRegistered(c *gc.C) {
36
c.Assert(s.provider, gc.Equals, vsphere.Provider)
39
func (s *providerSuite) TestOpen(c *gc.C) {
40
env, err := s.provider.Open(environs.OpenParams{
44
c.Check(err, jc.ErrorIsNil)
46
envConfig := env.Config()
47
c.Assert(envConfig.Name(), gc.Equals, "testenv")
50
func (s *providerSuite) TestOpenInvalidCloudSpec(c *gc.C) {
52
s.testOpenError(c, s.spec, `validating cloud spec: cloud name "" not valid`)
55
func (s *providerSuite) TestOpenMissingCredential(c *gc.C) {
56
s.spec.Credential = nil
57
s.testOpenError(c, s.spec, `validating cloud spec: missing credential not valid`)
60
func (s *providerSuite) TestOpenUnsupportedCredential(c *gc.C) {
61
credential := cloud.NewCredential(cloud.OAuth1AuthType, map[string]string{})
62
s.spec.Credential = &credential
63
s.testOpenError(c, s.spec, `validating cloud spec: "oauth1" auth-type not supported`)
66
func (s *providerSuite) testOpenError(c *gc.C, spec environs.CloudSpec, expect string) {
67
_, err := s.provider.Open(environs.OpenParams{
71
c.Assert(err, gc.ErrorMatches, expect)
74
func (s *providerSuite) TestPrepareConfig(c *gc.C) {
75
cfg, err := s.provider.PrepareConfig(environs.PrepareConfigParams{
79
c.Check(err, jc.ErrorIsNil)
80
c.Check(cfg, gc.NotNil)
83
func (s *providerSuite) TestValidate(c *gc.C) {
84
validCfg, err := s.provider.Validate(s.Config, nil)
85
c.Check(err, jc.ErrorIsNil)
87
validAttrs := validCfg.AllAttrs()
88
c.Assert(s.Config.AllAttrs(), gc.DeepEquals, validAttrs)