github.com/juju/juju@v0.0.0-20240327075706-a90865de2538/worker/caasunitsmanager/manifold_test.go (about) 1 // Copyright 2022 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package caasunitsmanager_test 5 6 import ( 7 "time" 8 9 "github.com/juju/clock/testclock" 10 "github.com/juju/errors" 11 "github.com/juju/loggo" 12 jc "github.com/juju/testing/checkers" 13 "go.uber.org/mock/gomock" 14 gc "gopkg.in/check.v1" 15 16 "github.com/juju/juju/worker/caasunitsmanager" 17 "github.com/juju/juju/worker/caasunitsmanager/mocks" 18 ) 19 20 type manifoldSuite struct { 21 config caasunitsmanager.ManifoldConfig 22 } 23 24 var _ = gc.Suite(&manifoldSuite{}) 25 26 func (s *manifoldSuite) SetUpTest(c *gc.C) { 27 s.config = caasunitsmanager.ManifoldConfig{ 28 Clock: testclock.NewClock(time.Now()), 29 Logger: loggo.GetLogger("test"), 30 Hub: mocks.NewMockHub(gomock.NewController(c)), 31 } 32 } 33 34 func (s *manifoldSuite) TestConfigValidation(c *gc.C) { 35 err := s.config.Validate() 36 c.Assert(err, jc.ErrorIsNil) 37 } 38 39 func (s *manifoldSuite) TestConfigValidationMissingClock(c *gc.C) { 40 s.config.Clock = nil 41 err := s.config.Validate() 42 c.Check(err, jc.Satisfies, errors.IsNotValid) 43 c.Check(err, gc.ErrorMatches, "missing Clock not valid") 44 } 45 46 func (s *manifoldSuite) TestConfigValidationMissingLogger(c *gc.C) { 47 s.config.Logger = nil 48 err := s.config.Validate() 49 c.Check(err, jc.Satisfies, errors.IsNotValid) 50 c.Check(err, gc.ErrorMatches, "missing Logger not valid") 51 } 52 53 func (s *manifoldSuite) TestConfigValidationMissingHub(c *gc.C) { 54 s.config.Hub = nil 55 err := s.config.Validate() 56 c.Check(err, jc.Satisfies, errors.IsNotValid) 57 c.Check(err, gc.ErrorMatches, "missing Hub not valid") 58 }