-
Notifications
You must be signed in to change notification settings - Fork 0
/
userdata_test.go
44 lines (34 loc) · 1.35 KB
/
userdata_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
// Copyright 2015 Canonical Ltd.
// Copyright 2015 Cloudbase Solutions SRL
// Licensed under the AGPLv3, see LICENCE file for details.
package cloudsigma_test
import (
"encoding/base64"
"github.com/juju/os"
jc "github.com/juju/testing/checkers"
gc "gopkg.in/check.v1"
"github.com/juju/juju/cloudconfig/cloudinit/cloudinittest"
"github.com/juju/juju/provider/cloudsigma"
"github.com/juju/juju/testing"
)
type UserdataSuite struct{ testing.BaseSuite }
var _ = gc.Suite(&UserdataSuite{})
func (s *UserdataSuite) TestCloudSigmaUnix(c *gc.C) {
renderer := cloudsigma.CloudSigmaRenderer{}
cloudcfg := &cloudinittest.CloudConfig{YAML: []byte("test")}
result, err := renderer.Render(cloudcfg, os.Ubuntu)
c.Assert(err, jc.ErrorIsNil)
expected := base64.StdEncoding.EncodeToString(cloudcfg.YAML)
c.Assert(string(result), jc.DeepEquals, expected)
result, err = renderer.Render(cloudcfg, os.CentOS)
c.Assert(err, jc.ErrorIsNil)
expected = base64.StdEncoding.EncodeToString(cloudcfg.YAML)
c.Assert(string(result), jc.DeepEquals, expected)
}
func (s *UserdataSuite) TestCloudSigmaUnknownOS(c *gc.C) {
renderer := cloudsigma.CloudSigmaRenderer{}
cloudcfg := &cloudinittest.CloudConfig{YAML: []byte("test")}
result, err := renderer.Render(cloudcfg, os.Windows)
c.Assert(result, gc.IsNil)
c.Assert(err, gc.ErrorMatches, "Cannot encode userdata for OS: Windows")
}