github.com/juju/juju@v0.0.0-20240430160146-1752b71fcf00/api/common/charm/charmorigin_test.go (about)

     1  // Copyright 2020 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package charm_test
     5  
     6  import (
     7  	"github.com/juju/charm/v12"
     8  	gc "gopkg.in/check.v1"
     9  
    10  	commoncharm "github.com/juju/juju/api/common/charm"
    11  	corebase "github.com/juju/juju/core/base"
    12  	corecharm "github.com/juju/juju/core/charm"
    13  )
    14  
    15  type originSuite struct{}
    16  
    17  var _ = gc.Suite(&originSuite{})
    18  
    19  func (originSuite) TestCoreChannel(c *gc.C) {
    20  	track := "latest"
    21  	branch := "foo"
    22  	origin := commoncharm.Origin{
    23  		Risk:   "edge",
    24  		Track:  &track,
    25  		Branch: &branch,
    26  	}
    27  	c.Assert(origin.CharmChannel(), gc.DeepEquals, charm.Channel{
    28  		Risk:   charm.Edge,
    29  		Track:  "latest",
    30  		Branch: "foo",
    31  	})
    32  }
    33  
    34  func (originSuite) TestCoreChannelWithEmptyTrack(c *gc.C) {
    35  	origin := commoncharm.Origin{
    36  		Risk: "edge",
    37  	}
    38  	c.Assert(origin.CharmChannel(), gc.DeepEquals, charm.Channel{
    39  		Risk: charm.Edge,
    40  	})
    41  }
    42  
    43  func (originSuite) TestCoreChannelThatIsEmpty(c *gc.C) {
    44  	origin := commoncharm.Origin{}
    45  	c.Assert(origin.CharmChannel(), gc.DeepEquals, charm.Channel{})
    46  }
    47  
    48  func (originSuite) TestConvertToCoreCharmOrigin(c *gc.C) {
    49  	track := "latest"
    50  	origin := commoncharm.Origin{
    51  		Source:       "charm-hub",
    52  		ID:           "foobar",
    53  		Track:        &track,
    54  		Risk:         "stable",
    55  		Branch:       nil,
    56  		Architecture: "amd64",
    57  		Base:         corebase.MakeDefaultBase("ubuntu", "20.04"),
    58  	}
    59  
    60  	c.Assert(origin.CoreCharmOrigin(), gc.DeepEquals, corecharm.Origin{
    61  		Source: "charm-hub",
    62  		ID:     "foobar",
    63  		Channel: &charm.Channel{
    64  			Track: "latest",
    65  			Risk:  "stable",
    66  		},
    67  		Platform: corecharm.Platform{
    68  			Architecture: "amd64",
    69  			OS:           "ubuntu",
    70  			Channel:      "20.04",
    71  		},
    72  	})
    73  }