github.com/cloud-green/juju@v0.0.0-20151002100041-a00291338d3d/cmd/jujud/reboot/reboot_test.go (about)

     1  package reboot_test
     2  
     3  import (
     4  	"os"
     5  	"path/filepath"
     6  	stdtesting "testing"
     7  
     8  	"github.com/juju/names"
     9  	"github.com/juju/testing"
    10  	jc "github.com/juju/testing/checkers"
    11  	gc "gopkg.in/check.v1"
    12  
    13  	"github.com/juju/juju/agent"
    14  	"github.com/juju/juju/api"
    15  	// "github.com/juju/juju/apiserver/params"
    16  	"github.com/juju/juju/cmd/jujud/reboot"
    17  	jujutesting "github.com/juju/juju/juju/testing"
    18  	coretesting "github.com/juju/juju/testing"
    19  	"github.com/juju/juju/version"
    20  )
    21  
    22  func TestAll(t *stdtesting.T) {
    23  	coretesting.MgoTestPackage(t)
    24  }
    25  
    26  type RebootSuite struct {
    27  	jujutesting.JujuConnSuite
    28  
    29  	acfg    agent.Config
    30  	mgoInst testing.MgoInstance
    31  	st      api.Connection
    32  
    33  	tmpDir           string
    34  	rebootScriptName string
    35  }
    36  
    37  var _ = gc.Suite(&RebootSuite{})
    38  
    39  func (s *RebootSuite) SetUpTest(c *gc.C) {
    40  	var err error
    41  	s.JujuConnSuite.SetUpTest(c)
    42  	testing.PatchExecutableAsEchoArgs(c, s, rebootBin)
    43  	s.PatchEnvironment("TEMP", c.MkDir())
    44  
    45  	s.tmpDir = c.MkDir()
    46  	s.rebootScriptName = "juju-reboot-script"
    47  	s.PatchValue(reboot.TmpFile, func() (*os.File, error) {
    48  		script := s.rebootScript(c)
    49  		return os.Create(script)
    50  	})
    51  
    52  	s.mgoInst.EnableAuth = true
    53  	err = s.mgoInst.Start(coretesting.Certs)
    54  	c.Assert(err, jc.ErrorIsNil)
    55  
    56  	configParams := agent.AgentConfigParams{
    57  		Paths:             agent.Paths{DataDir: c.MkDir()},
    58  		Tag:               names.NewMachineTag("0"),
    59  		UpgradedToVersion: version.Current.Number,
    60  		StateAddresses:    []string{s.mgoInst.Addr()},
    61  		CACert:            coretesting.CACert,
    62  		Password:          "fake",
    63  		Environment:       s.State.EnvironTag(),
    64  	}
    65  	s.st, _ = s.OpenAPIAsNewMachine(c)
    66  
    67  	s.acfg, err = agent.NewAgentConfig(configParams)
    68  	c.Assert(err, jc.ErrorIsNil)
    69  }
    70  
    71  func (s *RebootSuite) TearDownTest(c *gc.C) {
    72  	s.mgoInst.Destroy()
    73  	s.JujuConnSuite.TearDownTest(c)
    74  }
    75  
    76  func (s *RebootSuite) rebootScript(c *gc.C) string {
    77  	return filepath.Join(s.tmpDir, s.rebootScriptName)
    78  }