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 }