github.com/juju/juju@v0.0.0-20240430160146-1752b71fcf00/apiserver/common/charms_test.go (about) 1 // Copyright 2022 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package common 5 6 import ( 7 "github.com/juju/errors" 8 jc "github.com/juju/testing/checkers" 9 gc "gopkg.in/check.v1" 10 11 "github.com/juju/juju/rpc/params" 12 ) 13 14 type charmOriginSuite struct{} 15 16 var _ = gc.Suite(&charmOriginSuite{}) 17 18 func (s *charmOriginSuite) TestValidateCharmOriginSuccessCharmHub(c *gc.C) { 19 err := ValidateCharmOrigin(¶ms.CharmOrigin{ 20 Hash: "myHash", 21 ID: "myID", 22 Source: "charm-hub", 23 }) 24 c.Assert(errors.Is(err, errors.BadRequest), jc.IsFalse) 25 } 26 27 func (s *charmOriginSuite) TestValidateCharmOriginSuccessLocal(c *gc.C) { 28 err := ValidateCharmOrigin(¶ms.CharmOrigin{Source: "local"}) 29 c.Assert(errors.Is(err, errors.BadRequest), jc.IsFalse) 30 } 31 32 func (s *charmOriginSuite) TestValidateCharmOriginNil(c *gc.C) { 33 err := ValidateCharmOrigin(nil) 34 c.Assert(errors.Is(err, errors.BadRequest), jc.IsTrue) 35 } 36 37 func (s *charmOriginSuite) TestValidateCharmOriginNilSource(c *gc.C) { 38 err := ValidateCharmOrigin(¶ms.CharmOrigin{Source: ""}) 39 c.Assert(errors.Is(err, errors.BadRequest), jc.IsTrue) 40 } 41 42 func (s *charmOriginSuite) TestValidateCharmOriginBadSource(c *gc.C) { 43 err := ValidateCharmOrigin(¶ms.CharmOrigin{Source: "charm-store"}) 44 c.Assert(errors.Is(err, errors.BadRequest), jc.IsTrue) 45 } 46 47 func (s *charmOriginSuite) TestValidateCharmOriginCharmHubIDNoHash(c *gc.C) { 48 err := ValidateCharmOrigin(¶ms.CharmOrigin{ 49 ID: "myID", 50 Source: "charm-hub", 51 }) 52 c.Assert(errors.Is(err, errors.BadRequest), jc.IsTrue) 53 } 54 55 func (s *charmOriginSuite) TestValidateCharmOriginCharmHubHashNoID(c *gc.C) { 56 err := ValidateCharmOrigin(¶ms.CharmOrigin{ 57 Hash: "myHash", 58 Source: "charm-hub", 59 }) 60 c.Assert(errors.Is(err, errors.BadRequest), jc.IsTrue) 61 }