github.com/juju/juju@v0.0.0-20240327075706-a90865de2538/worker/charmdownloader/manifold_test.go (about) 1 // Copyright 2021 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package charmdownloader 5 6 import ( 7 "github.com/juju/errors" 8 "github.com/juju/loggo" 9 "github.com/juju/testing" 10 jc "github.com/juju/testing/checkers" 11 gc "gopkg.in/check.v1" 12 13 "github.com/juju/juju/api/base" 14 ) 15 16 type ManifoldConfigSuite struct { 17 testing.IsolationSuite 18 config ManifoldConfig 19 } 20 21 var _ = gc.Suite(&ManifoldConfigSuite{}) 22 23 func (s *ManifoldConfigSuite) SetUpTest(c *gc.C) { 24 s.IsolationSuite.SetUpTest(c) 25 s.config = validConfig() 26 } 27 28 func validConfig() ManifoldConfig { 29 return ManifoldConfig{ 30 APICallerName: "api-caller", 31 Logger: loggo.GetLogger("test"), 32 NewCharmDownloaderAPI: func(base.APICaller) CharmDownloaderAPI { return nil }, 33 } 34 } 35 36 func (s *ManifoldConfigSuite) TestValid(c *gc.C) { 37 c.Check(s.config.Validate(), jc.ErrorIsNil) 38 } 39 40 func (s *ManifoldConfigSuite) TestMissingAPICallerName(c *gc.C) { 41 s.config.APICallerName = "" 42 s.checkNotValid(c, "empty APICallerName not valid") 43 } 44 45 func (s *ManifoldConfigSuite) TestMissingLogger(c *gc.C) { 46 s.config.Logger = nil 47 s.checkNotValid(c, "nil Logger not valid") 48 } 49 50 func (s *ManifoldConfigSuite) checkNotValid(c *gc.C, expect string) { 51 err := s.config.Validate() 52 c.Check(err, gc.ErrorMatches, expect) 53 c.Check(err, jc.Satisfies, errors.IsNotValid) 54 }