github.com/altoros/juju-vmware@v0.0.0-20150312064031-f19ae857ccca/version/supportedseries_test.go (about)

     1  // Copyright 2013 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package version_test
     5  
     6  import (
     7  	jc "github.com/juju/testing/checkers"
     8  	gc "gopkg.in/check.v1"
     9  
    10  	"github.com/juju/juju/testing"
    11  	"github.com/juju/juju/version"
    12  )
    13  
    14  type supportedSeriesSuite struct {
    15  	testing.BaseSuite
    16  	cleanup func()
    17  }
    18  
    19  var _ = gc.Suite(&supportedSeriesSuite{})
    20  
    21  func (s *supportedSeriesSuite) SetUpTest(c *gc.C) {
    22  	s.cleanup = version.SetSeriesVersions(make(map[string]string))
    23  }
    24  
    25  func (s *supportedSeriesSuite) TearDownTest(c *gc.C) {
    26  	s.cleanup()
    27  }
    28  
    29  var getOSFromSeriesTests = []struct {
    30  	series string
    31  	want   version.OSType
    32  	err    string
    33  }{{
    34  	series: "precise",
    35  	want:   version.Ubuntu,
    36  }, {
    37  	series: "win2012r2",
    38  	want:   version.Windows,
    39  }, {
    40  	series: "mountainlion",
    41  	want:   version.OSX,
    42  }, {
    43  	series: "centos7",
    44  	want:   version.CentOS,
    45  }}
    46  
    47  func (s *supportedSeriesSuite) TestGetOSFromSeries(c *gc.C) {
    48  	for _, t := range getOSFromSeriesTests {
    49  		got, err := version.GetOSFromSeries(t.series)
    50  		if t.err != "" {
    51  			c.Assert(err, gc.ErrorMatches, t.err)
    52  		} else {
    53  			c.Check(err, jc.ErrorIsNil)
    54  			c.Assert(got, gc.Equals, t.want)
    55  		}
    56  	}
    57  }
    58  
    59  func (s *supportedSeriesSuite) TestOSSupportedSeries(c *gc.C) {
    60  	version.SetSeriesVersions(map[string]string{
    61  		"trusty":  "14.04",
    62  		"utopic":  "14.10",
    63  		"win7":    "win7",
    64  		"win81":   "win81",
    65  		"centos7": "centos7",
    66  	})
    67  	series := version.OSSupportedSeries(version.Ubuntu)
    68  	c.Assert(series, jc.SameContents, []string{"trusty", "utopic"})
    69  	series = version.OSSupportedSeries(version.Windows)
    70  	c.Assert(series, jc.SameContents, []string{"win7", "win81"})
    71  	series = version.OSSupportedSeries(version.CentOS)
    72  	c.Assert(series, jc.SameContents, []string{"centos7"})
    73  }