~nskaggs/+junk/xenial-test

« back to all changes in this revision

Viewing changes to src/github.com/juju/juju/provider/gce/userdata_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
// Copyright 2015 Cloudbase Solutions SRL
 
3
// Licensed under the AGPLv3, see LICENCE file for details.
 
4
 
 
5
package gce_test
 
6
 
 
7
import (
 
8
        "encoding/base64"
 
9
 
 
10
        jc "github.com/juju/testing/checkers"
 
11
        "github.com/juju/utils"
 
12
        "github.com/juju/utils/os"
 
13
        gc "gopkg.in/check.v1"
 
14
 
 
15
        "github.com/juju/juju/cloudconfig/cloudinit/cloudinittest"
 
16
        "github.com/juju/juju/cloudconfig/providerinit/renderers"
 
17
        "github.com/juju/juju/provider/gce"
 
18
        "github.com/juju/juju/testing"
 
19
)
 
20
 
 
21
type UserdataSuite struct {
 
22
        testing.BaseSuite
 
23
}
 
24
 
 
25
var _ = gc.Suite(&UserdataSuite{})
 
26
 
 
27
func (s *UserdataSuite) TestGCEUnix(c *gc.C) {
 
28
        renderer := gce.GCERenderer{}
 
29
        cloudcfg := &cloudinittest.CloudConfig{YAML: []byte("yaml")}
 
30
 
 
31
        result, err := renderer.Render(cloudcfg, os.Ubuntu)
 
32
        c.Assert(err, jc.ErrorIsNil)
 
33
        expected := base64.StdEncoding.EncodeToString(utils.Gzip(cloudcfg.YAML))
 
34
        c.Assert(string(result), jc.DeepEquals, expected)
 
35
 
 
36
        result, err = renderer.Render(cloudcfg, os.CentOS)
 
37
        c.Assert(err, jc.ErrorIsNil)
 
38
        expected = base64.StdEncoding.EncodeToString(utils.Gzip(cloudcfg.YAML))
 
39
        c.Assert(string(result), jc.DeepEquals, expected)
 
40
}
 
41
 
 
42
func (s *UserdataSuite) TestAzureWindows(c *gc.C) {
 
43
        renderer := gce.GCERenderer{}
 
44
        cloudcfg := &cloudinittest.CloudConfig{YAML: []byte("yaml")}
 
45
 
 
46
        result, err := renderer.Render(cloudcfg, os.Windows)
 
47
        c.Assert(err, jc.ErrorIsNil)
 
48
        c.Assert(result, jc.DeepEquals, renderers.WinEmbedInScript(cloudcfg.YAML))
 
49
}
 
50
 
 
51
func (s *UserdataSuite) TestGCEUnknownOS(c *gc.C) {
 
52
        renderer := gce.GCERenderer{}
 
53
        cloudcfg := &cloudinittest.CloudConfig{}
 
54
 
 
55
        result, err := renderer.Render(cloudcfg, os.Arch)
 
56
        c.Assert(result, gc.IsNil)
 
57
        c.Assert(err, gc.ErrorMatches, "Cannot encode userdata for OS: Arch")
 
58
}