github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/worker/pruner/manifold_test.go (about) 1 // Copyright 2017 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package pruner_test 5 6 import ( 7 "github.com/juju/errors" 8 "github.com/juju/testing" 9 jc "github.com/juju/testing/checkers" 10 gc "gopkg.in/check.v1" 11 "gopkg.in/juju/worker.v1" 12 13 "github.com/juju/juju/api/base" 14 "github.com/juju/juju/worker/pruner" 15 ) 16 17 type ManifoldSuite struct { 18 testing.IsolationSuite 19 } 20 21 var _ = gc.Suite(&ManifoldSuite{}) 22 23 type ManifoldConfigSuite struct { 24 testing.IsolationSuite 25 config pruner.ManifoldConfig 26 } 27 28 var _ = gc.Suite(&ManifoldConfigSuite{}) 29 30 func (s *ManifoldConfigSuite) SetUpTest(c *gc.C) { 31 s.IsolationSuite.SetUpTest(c) 32 s.config = s.validConfig() 33 } 34 35 func (s *ManifoldConfigSuite) validConfig() pruner.ManifoldConfig { 36 return pruner.ManifoldConfig{ 37 APICallerName: "api-caller", 38 EnvironName: "environ", 39 ClockName: "clock", 40 NewWorker: func(pruner.Config) (worker.Worker, error) { return nil, nil }, 41 NewFacade: func(caller base.APICaller) pruner.Facade { return nil }, 42 } 43 } 44 45 func (s *ManifoldConfigSuite) TestValid(c *gc.C) { 46 c.Check(s.config.Validate(), jc.ErrorIsNil) 47 } 48 49 func (s *ManifoldConfigSuite) TestMissingAPICallerName(c *gc.C) { 50 s.config.APICallerName = "" 51 s.checkNotValid(c, "empty APICallerName not valid") 52 } 53 54 func (s *ManifoldConfigSuite) TestMissingEnvironName(c *gc.C) { 55 s.config.EnvironName = "" 56 s.checkNotValid(c, "empty EnvironName not valid") 57 } 58 59 func (s *ManifoldConfigSuite) TestMissingClockName(c *gc.C) { 60 s.config.ClockName = "" 61 s.checkNotValid(c, "empty ClockName not valid") 62 } 63 64 func (s *ManifoldConfigSuite) TestMissingNewWorker(c *gc.C) { 65 s.config.NewWorker = nil 66 s.checkNotValid(c, "nil NewWorker not valid") 67 } 68 69 func (s *ManifoldConfigSuite) TestMissingNewFacade(c *gc.C) { 70 s.config.NewFacade = nil 71 s.checkNotValid(c, "nil NewFacade not valid") 72 } 73 74 func (s *ManifoldConfigSuite) checkNotValid(c *gc.C, expect string) { 75 err := s.config.Validate() 76 c.Check(err, gc.ErrorMatches, expect) 77 c.Check(err, jc.Satisfies, errors.IsNotValid) 78 }