github.com/juju/juju@v0.0.0-20240430160146-1752b71fcf00/worker/changestream/manifold_test.go (about) 1 // Copyright 2022 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package changestream 5 6 import ( 7 clock "github.com/juju/clock" 8 "github.com/juju/errors" 9 jc "github.com/juju/testing/checkers" 10 gc "gopkg.in/check.v1" 11 12 coredatabase "github.com/juju/juju/core/database" 13 ) 14 15 type manifoldSuite struct { 16 baseSuite 17 } 18 19 var _ = gc.Suite(&manifoldSuite{}) 20 21 func (s *manifoldSuite) TestValidateConfig(c *gc.C) { 22 defer s.setupMocks(c).Finish() 23 24 cfg := s.getConfig() 25 c.Check(cfg.Validate(), jc.ErrorIsNil) 26 27 cfg.Clock = nil 28 c.Check(errors.Is(cfg.Validate(), errors.NotValid), jc.IsTrue) 29 30 cfg = s.getConfig() 31 cfg.Logger = nil 32 c.Check(errors.Is(cfg.Validate(), errors.NotValid), jc.IsTrue) 33 34 cfg = s.getConfig() 35 cfg.DBAccessor = "" 36 c.Check(errors.Is(cfg.Validate(), errors.NotValid), jc.IsTrue) 37 38 cfg = s.getConfig() 39 cfg.FileNotifyWatcher = "" 40 c.Check(errors.Is(cfg.Validate(), errors.NotValid), jc.IsTrue) 41 42 cfg = s.getConfig() 43 cfg.NewEventQueueWorker = nil 44 c.Check(errors.Is(cfg.Validate(), errors.NotValid), jc.IsTrue) 45 } 46 47 func (s *manifoldSuite) getConfig() ManifoldConfig { 48 return ManifoldConfig{ 49 DBAccessor: "dbaccessor", 50 FileNotifyWatcher: "filenotifywatcher", 51 Clock: s.clock, 52 Logger: s.logger, 53 NewEventQueueWorker: func(coredatabase.TrackedDB, FileNotifier, clock.Clock, Logger) (EventQueueWorker, error) { 54 return nil, nil 55 }, 56 } 57 }