github.com/juju/juju@v0.0.0-20240327075706-a90865de2538/worker/multiwatcher/worker_test.go (about) 1 // Copyright 2019 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package multiwatcher_test 5 6 import ( 7 "github.com/juju/clock" 8 "github.com/juju/errors" 9 "github.com/juju/loggo" 10 jc "github.com/juju/testing/checkers" 11 gc "gopkg.in/check.v1" 12 13 "github.com/juju/juju/state" 14 statetesting "github.com/juju/juju/state/testing" 15 "github.com/juju/juju/worker/multiwatcher" 16 ) 17 18 type WorkerSuite struct { 19 statetesting.StateSuite 20 logger loggo.Logger 21 config multiwatcher.Config 22 } 23 24 var _ = gc.Suite(&WorkerSuite{}) 25 26 func (s *WorkerSuite) SetUpTest(c *gc.C) { 27 s.StateSuite.SetUpTest(c) 28 s.logger = loggo.GetLogger("test") 29 s.logger.SetLogLevel(loggo.TRACE) 30 31 allWatcherBacking, err := state.NewAllWatcherBacking(s.StatePool) 32 c.Assert(err, jc.ErrorIsNil) 33 s.config = multiwatcher.Config{ 34 Clock: clock.WallClock, 35 Logger: s.logger, 36 Backing: allWatcherBacking, 37 PrometheusRegisterer: noopRegisterer{}, 38 } 39 } 40 41 func (s *WorkerSuite) TestConfigMissingClock(c *gc.C) { 42 s.config.Clock = nil 43 err := s.config.Validate() 44 c.Check(err, jc.Satisfies, errors.IsNotValid) 45 c.Check(err, gc.ErrorMatches, "missing Clock not valid") 46 } 47 48 func (s *WorkerSuite) TestConfigMissingLogger(c *gc.C) { 49 s.config.Logger = nil 50 err := s.config.Validate() 51 c.Check(err, jc.Satisfies, errors.IsNotValid) 52 c.Check(err, gc.ErrorMatches, "missing Logger not valid") 53 } 54 55 func (s *WorkerSuite) TestConfigMissingBacking(c *gc.C) { 56 s.config.Backing = nil 57 err := s.config.Validate() 58 c.Check(err, jc.Satisfies, errors.IsNotValid) 59 c.Check(err, gc.ErrorMatches, "missing Backing not valid") 60 } 61 62 func (s *WorkerSuite) TestConfigMissingRegisterer(c *gc.C) { 63 s.config.PrometheusRegisterer = nil 64 err := s.config.Validate() 65 c.Check(err, jc.Satisfies, errors.IsNotValid) 66 c.Check(err, gc.ErrorMatches, "missing PrometheusRegisterer not valid") 67 }