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  }