~nskaggs/+junk/xenial-test

« back to all changes in this revision

Viewing changes to src/github.com/juju/juju/provider/rackspace/provider_test.go

  • Committer: Nicholas Skaggs
  • Date: 2016-10-24 20:56:05 UTC
  • Revision ID: nicholas.skaggs@canonical.com-20161024205605-z8lta0uvuhtxwzwl
Initi with beta15

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// Copyright 2015 Canonical Ltd.
 
2
// Licensed under the AGPLv3, see LICENCE file for details.
 
3
 
 
4
package rackspace_test
 
5
 
 
6
import (
 
7
        "github.com/juju/testing"
 
8
        gc "gopkg.in/check.v1"
 
9
 
 
10
        "github.com/juju/errors"
 
11
        "github.com/juju/juju/cloud"
 
12
        "github.com/juju/juju/environs"
 
13
        "github.com/juju/juju/environs/config"
 
14
        "github.com/juju/juju/provider/rackspace"
 
15
        coretesting "github.com/juju/juju/testing"
 
16
)
 
17
 
 
18
type providerSuite struct {
 
19
        provider      environs.EnvironProvider
 
20
        innerProvider *fakeProvider
 
21
}
 
22
 
 
23
var _ = gc.Suite(&providerSuite{})
 
24
 
 
25
func (s *providerSuite) SetUpTest(c *gc.C) {
 
26
        s.innerProvider = new(fakeProvider)
 
27
        s.provider = rackspace.NewProvider(s.innerProvider)
 
28
}
 
29
 
 
30
func (s *providerSuite) TestValidate(c *gc.C) {
 
31
        cfg, err := config.New(config.UseDefaults, map[string]interface{}{
 
32
                "name":            "some-name",
 
33
                "type":            "some-type",
 
34
                "uuid":            coretesting.ModelTag.Id(),
 
35
                "controller-uuid": coretesting.ModelTag.Id(),
 
36
                "authorized-keys": "key",
 
37
        })
 
38
        c.Check(err, gc.IsNil)
 
39
        _, err = s.provider.Validate(cfg, nil)
 
40
        c.Check(err, gc.IsNil)
 
41
        s.innerProvider.CheckCallNames(c, "Validate")
 
42
}
 
43
 
 
44
func (s *providerSuite) TestPrepareConfig(c *gc.C) {
 
45
        args := environs.PrepareConfigParams{
 
46
                Cloud: environs.CloudSpec{
 
47
                        Region: "dfw",
 
48
                },
 
49
        }
 
50
        s.provider.PrepareConfig(args)
 
51
 
 
52
        expect := args
 
53
        expect.Cloud.Region = "DFW"
 
54
        s.innerProvider.CheckCalls(c, []testing.StubCall{
 
55
                {"PrepareConfig", []interface{}{expect}},
 
56
        })
 
57
}
 
58
 
 
59
type fakeProvider struct {
 
60
        testing.Stub
 
61
}
 
62
 
 
63
func (p *fakeProvider) Open(args environs.OpenParams) (environs.Environ, error) {
 
64
        p.MethodCall(p, "Open", args)
 
65
        return nil, nil
 
66
}
 
67
 
 
68
func (p *fakeProvider) RestrictedConfigAttributes() []string {
 
69
        p.MethodCall(p, "RestrictedConfigAttributes")
 
70
        return nil
 
71
}
 
72
 
 
73
func (p *fakeProvider) PrepareForCreateEnvironment(controllerUUID string, cfg *config.Config) (*config.Config, error) {
 
74
        p.MethodCall(p, "PrepareForCreateEnvironment", controllerUUID, cfg)
 
75
        return nil, nil
 
76
}
 
77
 
 
78
func (p *fakeProvider) PrepareConfig(args environs.PrepareConfigParams) (*config.Config, error) {
 
79
        p.MethodCall(p, "PrepareConfig", args)
 
80
        return nil, nil
 
81
}
 
82
 
 
83
func (p *fakeProvider) PrepareForBootstrap(ctx environs.BootstrapContext, cfg *config.Config) (environs.Environ, error) {
 
84
        p.MethodCall(p, "PrepareForBootstrap", ctx, cfg)
 
85
        return nil, nil
 
86
}
 
87
 
 
88
func (p *fakeProvider) Validate(cfg, old *config.Config) (valid *config.Config, err error) {
 
89
        p.MethodCall(p, "Validate", cfg, old)
 
90
        return cfg, nil
 
91
}
 
92
 
 
93
func (p *fakeProvider) SecretAttrs(cfg *config.Config) (map[string]string, error) {
 
94
        p.MethodCall(p, "SecretAttrs", cfg)
 
95
        return nil, nil
 
96
}
 
97
 
 
98
func (p *fakeProvider) CredentialSchemas() map[cloud.AuthType]cloud.CredentialSchema {
 
99
        p.MethodCall(p, "CredentialSchemas")
 
100
        return nil
 
101
}
 
102
 
 
103
func (p *fakeProvider) DetectCredentials() (*cloud.CloudCredential, error) {
 
104
        p.MethodCall(p, "DetectCredentials")
 
105
        return nil, errors.NotFoundf("credentials")
 
106
}