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