github.com/juju/charm/v11@v11.2.0/manifest_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 "strings" 8 9 "github.com/juju/testing" 10 gc "gopkg.in/check.v1" 11 ) 12 13 type manifestSuite struct { 14 testing.CleanupSuite 15 } 16 17 var _ = gc.Suite(&manifestSuite{}) 18 19 func (s *manifestSuite) TestReadManifest(c *gc.C) { 20 manifest, err := ReadManifest(strings.NewReader(` 21 bases: 22 - name: ubuntu 23 channel: "18.04" 24 architectures: ["amd64","aarch64","s390x"] 25 - name: ubuntu 26 channel: "20.04/stable" 27 `)) 28 c.Assert(err, gc.IsNil) 29 c.Assert(manifest, gc.DeepEquals, &Manifest{Bases: []Base{{ 30 Name: "ubuntu", 31 Channel: Channel{ 32 Track: "18.04", 33 Risk: "stable", 34 Branch: "", 35 }, 36 Architectures: []string{"amd64", "arm64", "s390x"}, 37 }, { 38 Name: "ubuntu", 39 Channel: Channel{ 40 Track: "20.04", 41 Risk: "stable", 42 Branch: "", 43 }, 44 }, 45 }}) 46 } 47 48 func (s *manifestSuite) TestReadValidateManifest(c *gc.C) { 49 _, err := ReadManifest(strings.NewReader(` 50 bases: 51 - name: "" 52 channel: "18.04" 53 `)) 54 c.Assert(err, gc.ErrorMatches, "manifest: base without name not valid") 55 } 56 57 func (s *manifestSuite) TestValidateManifest(c *gc.C) { 58 manifest := &Manifest{ 59 Bases: []Base{{ 60 Name: "", 61 }}, 62 } 63 c.Assert(manifest.Validate(), gc.ErrorMatches, "validating manifest: base without name not valid") 64 }