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  }