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 }