github.com/makyo/juju@v0.0.0-20160425123129-2608902037e9/provider/vsphere/userdata_test.go (about) 1 // Copyright 2015 Canonical Ltd. 2 // Copyright 2015 Cloudbase Solutions SRL 3 // Licensed under the AGPLv3, see LICENCE file for details. 4 5 package vsphere_test 6 7 import ( 8 "encoding/base64" 9 10 jc "github.com/juju/testing/checkers" 11 "github.com/juju/utils/os" 12 gc "gopkg.in/check.v1" 13 14 "github.com/juju/juju/cloudconfig/cloudinit/cloudinittest" 15 "github.com/juju/juju/provider/vsphere" 16 "github.com/juju/juju/testing" 17 ) 18 19 type UserdataSuite struct { 20 testing.BaseSuite 21 } 22 23 var _ = gc.Suite(&UserdataSuite{}) 24 25 func (s *UserdataSuite) TestVsphereUnix(c *gc.C) { 26 renderer := vsphere.VsphereRenderer{} 27 cloudcfg := &cloudinittest.CloudConfig{YAML: []byte("yaml")} 28 29 result, err := renderer.Render(cloudcfg, os.Ubuntu) 30 c.Assert(err, jc.ErrorIsNil) 31 expected := base64.StdEncoding.EncodeToString(cloudcfg.YAML) 32 c.Assert(string(result), jc.DeepEquals, expected) 33 34 result, err = renderer.Render(cloudcfg, os.CentOS) 35 c.Assert(err, jc.ErrorIsNil) 36 expected = base64.StdEncoding.EncodeToString(cloudcfg.YAML) 37 c.Assert(string(result), jc.DeepEquals, expected) 38 } 39 40 func (s *UserdataSuite) TestVsphereUnknownOS(c *gc.C) { 41 renderer := vsphere.VsphereRenderer{} 42 cloudcfg := &cloudinittest.CloudConfig{} 43 result, err := renderer.Render(cloudcfg, os.Windows) 44 c.Assert(result, gc.IsNil) 45 c.Assert(err, gc.ErrorMatches, "Cannot encode userdata for OS: Windows") 46 }