github.com/mhilton/juju-juju@v0.0.0-20150901100907-a94dd2c73455/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 series: "arch", 47 want: version.Arch, 48 }, { 49 series: "", 50 err: "series \"\" not valid", 51 }, 52 } 53 54 func (s *supportedSeriesSuite) TestGetOSFromSeries(c *gc.C) { 55 for _, t := range getOSFromSeriesTests { 56 got, err := version.GetOSFromSeries(t.series) 57 if t.err != "" { 58 c.Assert(err, gc.ErrorMatches, t.err) 59 } else { 60 c.Check(err, jc.ErrorIsNil) 61 c.Assert(got, gc.Equals, t.want) 62 } 63 } 64 } 65 66 func (s *supportedSeriesSuite) TestUnknownOSFromSeries(c *gc.C) { 67 _, err := version.GetOSFromSeries("Xuanhuaceratops") 68 c.Assert(err, jc.Satisfies, version.IsUnknownOSForSeriesError) 69 c.Assert(err, gc.ErrorMatches, `unknown OS for series: "Xuanhuaceratops"`) 70 } 71 72 func (s *supportedSeriesSuite) TestOSSupportedSeries(c *gc.C) { 73 version.SetSeriesVersions(map[string]string{ 74 "trusty": "14.04", 75 "utopic": "14.10", 76 "win7": "win7", 77 "win81": "win81", 78 "centos7": "centos7", 79 "arch": "rolling", 80 }) 81 series := version.OSSupportedSeries(version.Ubuntu) 82 c.Assert(series, jc.SameContents, []string{"trusty", "utopic"}) 83 series = version.OSSupportedSeries(version.Windows) 84 c.Assert(series, jc.SameContents, []string{"win7", "win81"}) 85 series = version.OSSupportedSeries(version.CentOS) 86 c.Assert(series, jc.SameContents, []string{"centos7"}) 87 series = version.OSSupportedSeries(version.Arch) 88 c.Assert(series, jc.SameContents, []string{"arch"}) 89 }