github.com/juju/juju@v0.0.0-20240430160146-1752b71fcf00/worker/uniter/manifold_test.go (about)

     1  // Copyright 2020 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package uniter_test
     5  
     6  import (
     7  	"time"
     8  
     9  	"github.com/juju/clock/testclock"
    10  	"github.com/juju/errors"
    11  	"github.com/juju/loggo"
    12  	"github.com/juju/testing"
    13  	jc "github.com/juju/testing/checkers"
    14  	gc "gopkg.in/check.v1"
    15  
    16  	"github.com/juju/juju/core/machinelock"
    17  	"github.com/juju/juju/core/model"
    18  	"github.com/juju/juju/worker/uniter"
    19  )
    20  
    21  type ManifoldSuite struct {
    22  	testing.IsolationSuite
    23  	config uniter.ManifoldConfig
    24  }
    25  
    26  var _ = gc.Suite(&ManifoldSuite{})
    27  
    28  func (s *ManifoldSuite) SetUpTest(c *gc.C) {
    29  	s.IsolationSuite.SetUpTest(c)
    30  	s.config = uniter.ManifoldConfig{
    31  		Clock:       testclock.NewClock(time.Now()),
    32  		MachineLock: fakeLock{},
    33  		Logger:      loggo.GetLogger("test"),
    34  		ModelType:   model.IAAS,
    35  	}
    36  }
    37  
    38  func (s *ManifoldSuite) TestConfigValidation(c *gc.C) {
    39  	err := s.config.Validate()
    40  	c.Assert(err, jc.ErrorIsNil)
    41  }
    42  
    43  func (s *ManifoldSuite) TestConfigValidationMissingClock(c *gc.C) {
    44  	s.config.Clock = nil
    45  	err := s.config.Validate()
    46  	c.Check(err, jc.Satisfies, errors.IsNotValid)
    47  	c.Check(err, gc.ErrorMatches, "missing Clock not valid")
    48  }
    49  
    50  func (s *ManifoldSuite) TestConfigValidationMissingMachineLock(c *gc.C) {
    51  	s.config.MachineLock = nil
    52  	err := s.config.Validate()
    53  	c.Check(err, jc.Satisfies, errors.IsNotValid)
    54  	c.Check(err, gc.ErrorMatches, "missing MachineLock not valid")
    55  }
    56  
    57  func (s *ManifoldSuite) TestConfigValidationMissingLogger(c *gc.C) {
    58  	s.config.Logger = nil
    59  	err := s.config.Validate()
    60  	c.Check(err, jc.Satisfies, errors.IsNotValid)
    61  	c.Check(err, gc.ErrorMatches, "missing Logger not valid")
    62  }
    63  
    64  func (s *ManifoldSuite) TestConfigValidationMissingModelType(c *gc.C) {
    65  	s.config.ModelType = ""
    66  	err := s.config.Validate()
    67  	c.Check(err, jc.Satisfies, errors.IsNotValid)
    68  	c.Check(err, gc.ErrorMatches, "missing model type not valid")
    69  }
    70  
    71  type fakeLock struct {
    72  	machinelock.Lock
    73  }