github.com/juju/juju@v0.0.0-20240327075706-a90865de2538/worker/upgradeseries/upgrader_test.go (about)

     1  // Copyright 2018 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package upgradeseries_test
     5  
     6  import (
     7  	"github.com/juju/loggo"
     8  	jc "github.com/juju/testing/checkers"
     9  	"go.uber.org/mock/gomock"
    10  	gc "gopkg.in/check.v1"
    11  
    12  	"github.com/juju/juju/core/paths"
    13  	"github.com/juju/juju/testing"
    14  	"github.com/juju/juju/worker/upgradeseries"
    15  	. "github.com/juju/juju/worker/upgradeseries/mocks"
    16  )
    17  
    18  type upgraderSuite struct {
    19  	testing.BaseSuite
    20  
    21  	machineService string
    22  
    23  	logger  upgradeseries.Logger
    24  	manager *MockSystemdServiceManager
    25  }
    26  
    27  var _ = gc.Suite(&upgraderSuite{})
    28  
    29  func (s *upgraderSuite) SetUpTest(c *gc.C) {
    30  	s.BaseSuite.SetUpTest(c)
    31  	s.logger = loggo.GetLogger("test.upgrader")
    32  	s.machineService = "jujud-machine-0"
    33  }
    34  
    35  func (s *upgraderSuite) TestPerformUpgrade(c *gc.C) {
    36  	ctrl := gomock.NewController(c)
    37  	defer ctrl.Finish()
    38  	s.setupMocks(ctrl)
    39  
    40  	upg := s.newUpgrader(c, "focal", "jammy")
    41  	c.Assert(upg.PerformUpgrade(), jc.ErrorIsNil)
    42  }
    43  
    44  func (s *upgraderSuite) setupMocks(ctrl *gomock.Controller) {
    45  	s.manager = NewMockSystemdServiceManager(ctrl)
    46  
    47  	// FindAgents would look through the dataDir to find agents.
    48  	// Here we return unit agents, but they should have no impact on methods.
    49  	s.manager.EXPECT().FindAgents(paths.NixDataDir).Return(s.machineService, []string{"jujud-unit-ubuntu-0", "jujud-unit-redis-0"}, nil, nil)
    50  }
    51  
    52  func (s *upgraderSuite) newUpgrader(c *gc.C, currentSeries, toSeries string) upgradeseries.Upgrader {
    53  	upg, err := upgradeseries.NewUpgrader(currentSeries, toSeries, s.manager, s.logger)
    54  	c.Assert(err, jc.ErrorIsNil)
    55  	return upg
    56  }