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  }