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(&params.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(&params.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(&params.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(&params.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(&params.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(&params.CharmOrigin{
    57  		Hash:   "myHash",
    58  		Source: "charm-hub",
    59  	})
    60  	c.Assert(errors.Is(err, errors.BadRequest), jc.IsTrue)
    61  }