github.com/juju/juju@v0.0.0-20240430160146-1752b71fcf00/core/base/validate_test.go (about) 1 // Copyright 2019 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package base 5 6 import ( 7 "fmt" 8 9 "github.com/juju/testing" 10 gc "gopkg.in/check.v1" 11 ) 12 13 type BaseValidateSuite struct { 14 testing.IsolationSuite 15 } 16 17 var _ = gc.Suite(&BaseValidateSuite{}) 18 19 func (*BaseValidateSuite) TestValidate(c *gc.C) { 20 expected := MustParseBaseFromString("ubuntu@20.04") 21 22 result, err := ValidateBase([]Base{ 23 MustParseBaseFromString("ubuntu@18.04"), 24 expected, 25 }, expected, MustParseBaseFromString("ubuntu@22.04")) 26 c.Assert(err, gc.IsNil) 27 c.Assert(result, gc.Equals, expected) 28 } 29 30 func (*BaseValidateSuite) TestValidateError(c *gc.C) { 31 expected := MustParseBaseFromString("ubuntu@16.04") 32 33 result, err := ValidateBase([]Base{ 34 MustParseBaseFromString("ubuntu@18.04"), 35 MustParseBaseFromString("ubuntu@20.04"), 36 }, expected, MustParseBaseFromString("ubuntu@22.04")) 37 c.Assert(err, gc.ErrorMatches, fmt.Sprintf("%s not supported", expected.String())) 38 c.Assert(result, gc.Equals, expected) 39 } 40 41 func (*BaseValidateSuite) TestFallbackValidateError(c *gc.C) { 42 expected := MustParseBaseFromString("ubuntu@22.04") 43 44 result, err := ValidateBase([]Base{ 45 MustParseBaseFromString("ubuntu@18.04"), 46 MustParseBaseFromString("ubuntu@20.04"), 47 }, Base{}, expected) 48 c.Assert(err, gc.ErrorMatches, fmt.Sprintf("%s not supported", expected.String())) 49 c.Assert(result, gc.Equals, expected) 50 }