github.com/juju/juju@v0.0.0-20240430160146-1752b71fcf00/provider/lxd/server_test.go (about) 1 // Copyright 2021 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package lxd 5 6 import ( 7 "github.com/juju/testing" 8 jc "github.com/juju/testing/checkers" 9 "github.com/juju/version/v2" 10 gc "gopkg.in/check.v1" 11 ) 12 13 var ( 14 _ = gc.Suite(&serverSuite{}) 15 ) 16 17 // serverSuite tests server module functionality from inside the 18 // lxd package. See server_integration_test.go for tests that use 19 // only the exported surface of the package. 20 type serverSuite struct { 21 testing.IsolationSuite 22 } 23 24 func (s *serverSuite) TestParseAPIVersion(c *gc.C) { 25 ver, err := ParseAPIVersion("5.2") 26 c.Check(err, jc.ErrorIsNil) 27 c.Check(ver, gc.Equals, version.MustParse("5.2.0")) 28 29 _, err = ParseAPIVersion("5") 30 c.Check(err, gc.ErrorMatches, `LXD API version "5": expected format <major>.<minor>`) 31 32 _, err = ParseAPIVersion("a.b") 33 c.Check(err, gc.ErrorMatches, `major version number a not valid`) 34 35 _, err = ParseAPIVersion("1.b") 36 c.Check(err, gc.ErrorMatches, `minor version number b not valid`) 37 } 38 39 func (s *serverSuite) TestValidateAPIVersion(c *gc.C) { 40 err := ValidateAPIVersion("5.0") 41 c.Check(err, jc.ErrorIsNil) 42 43 err = ValidateAPIVersion("4.0") 44 c.Check(err, gc.ErrorMatches, `LXD version has to be at least "5.0.0", but current version is only "4.0.0"`) 45 }