github.com/juju/juju@v0.0.0-20240327075706-a90865de2538/core/charm/format_test.go (about)

     1  // Copyright 2021 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package charm
     5  
     6  import (
     7  	"github.com/juju/charm/v12"
     8  	"github.com/juju/testing"
     9  	"go.uber.org/mock/gomock"
    10  	gc "gopkg.in/check.v1"
    11  )
    12  
    13  type formatSuite struct {
    14  	testing.CleanupSuite
    15  }
    16  
    17  var _ = gc.Suite(&formatSuite{})
    18  
    19  func (s formatSuite) TestFormatV2(c *gc.C) {
    20  	ctrl := gomock.NewController(c)
    21  	defer ctrl.Finish()
    22  
    23  	cm := NewMockCharmMeta(ctrl)
    24  	cm.EXPECT().Meta().Return(&charm.Meta{})
    25  	cm.EXPECT().Manifest().Return(&charm.Manifest{
    26  		Bases: []charm.Base{
    27  			{Name: "ubuntu", Channel: charm.Channel{
    28  				Track: "20.04",
    29  				Risk:  "stable",
    30  			}},
    31  		},
    32  	})
    33  
    34  	c.Assert(Format(cm), gc.Equals, FormatV2)
    35  }
    36  
    37  func (s formatSuite) TestFormatV1EmptyManifest(c *gc.C) {
    38  	ctrl := gomock.NewController(c)
    39  	defer ctrl.Finish()
    40  
    41  	cm := NewMockCharmMeta(ctrl)
    42  	cm.EXPECT().Manifest().Return(&charm.Manifest{})
    43  
    44  	c.Assert(Format(cm), gc.Equals, FormatV1)
    45  }
    46  
    47  func (s formatSuite) TestFormatV1Series(c *gc.C) {
    48  	ctrl := gomock.NewController(c)
    49  	defer ctrl.Finish()
    50  
    51  	cm := NewMockCharmMeta(ctrl)
    52  	cm.EXPECT().Manifest().Return(&charm.Manifest{
    53  		Bases: []charm.Base{{}},
    54  	})
    55  	cm.EXPECT().Meta().Return(&charm.Meta{
    56  		Series: []string{"kubernetes"},
    57  	})
    58  
    59  	c.Assert(Format(cm), gc.Equals, FormatV1)
    60  }