github.com/juju/juju@v0.0.0-20240430160146-1752b71fcf00/worker/upgradeseries/testing_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  	"github.com/juju/names/v5"
     9  	"github.com/juju/worker/v3"
    10  	"go.uber.org/mock/gomock"
    11  
    12  	"github.com/juju/juju/api/base"
    13  	workermocks "github.com/juju/juju/worker/mocks"
    14  	"github.com/juju/juju/worker/upgradeseries"
    15  	. "github.com/juju/juju/worker/upgradeseries/mocks"
    16  )
    17  
    18  // validManifoldConfig returns a valid manifold config created from mocks based
    19  // on the incoming controller. The mocked facade and worker are returned.
    20  func validManifoldConfig(ctrl *gomock.Controller) (upgradeseries.ManifoldConfig, upgradeseries.Facade, worker.Worker) {
    21  	facade := NewMockFacade(ctrl)
    22  	work := workermocks.NewMockWorker(ctrl)
    23  	cfg := newManifoldConfig(
    24  		loggo.GetLogger("test.upgradeseries"),
    25  		func(_ base.APICaller, _ names.Tag) upgradeseries.Facade { return facade },
    26  		func(_ upgradeseries.Config) (worker.Worker, error) { return work, nil },
    27  	)
    28  
    29  	return cfg, facade, work
    30  }
    31  
    32  // newManifoldConfig creates and returns a new ManifoldConfig instance based on
    33  // the supplied arguments.
    34  func newManifoldConfig(
    35  	logger upgradeseries.Logger,
    36  	newFacade func(base.APICaller, names.Tag) upgradeseries.Facade,
    37  	newWorker func(upgradeseries.Config) (worker.Worker, error),
    38  ) upgradeseries.ManifoldConfig {
    39  	return upgradeseries.ManifoldConfig{
    40  		AgentName:     "agent-name",
    41  		APICallerName: "api-caller-name",
    42  		NewFacade:     newFacade,
    43  		NewWorker:     newWorker,
    44  		Logger:        logger,
    45  	}
    46  }