github.com/makyo/juju@v0.0.0-20160425123129-2608902037e9/juju/osenv/home_test.go (about)

     1  // Copyright 2013 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package osenv_test
     5  
     6  import (
     7  	"path/filepath"
     8  
     9  	jc "github.com/juju/testing/checkers"
    10  	gc "gopkg.in/check.v1"
    11  
    12  	"github.com/juju/juju/juju/osenv"
    13  	"github.com/juju/juju/testing"
    14  )
    15  
    16  type JujuXDGDataHomeSuite struct {
    17  	testing.BaseSuite
    18  }
    19  
    20  var _ = gc.Suite(&JujuXDGDataHomeSuite{})
    21  
    22  func (s *JujuXDGDataHomeSuite) TestStandardHome(c *gc.C) {
    23  	testJujuXDGDataHome := c.MkDir()
    24  	osenv.SetJujuXDGDataHome(testJujuXDGDataHome)
    25  	c.Assert(osenv.JujuXDGDataHome(), gc.Equals, testJujuXDGDataHome)
    26  }
    27  
    28  func (s *JujuXDGDataHomeSuite) TestErrorHome(c *gc.C) {
    29  	// Invalid juju home leads to panic when retrieving.
    30  	f := func() { _ = osenv.JujuXDGDataHome() }
    31  	c.Assert(f, gc.PanicMatches, "juju home hasn't been initialized")
    32  	f = func() { _ = osenv.JujuXDGDataHomePath("current-environment") }
    33  	c.Assert(f, gc.PanicMatches, "juju home hasn't been initialized")
    34  }
    35  
    36  func (s *JujuXDGDataHomeSuite) TestHomePath(c *gc.C) {
    37  	testJujuHome := c.MkDir()
    38  	osenv.SetJujuXDGDataHome(testJujuHome)
    39  	envPath := osenv.JujuXDGDataHomePath("current-environment")
    40  	c.Assert(envPath, gc.Equals, filepath.Join(testJujuHome, "current-environment"))
    41  }
    42  
    43  func (s *JujuXDGDataHomeSuite) TestIsHomeSet(c *gc.C) {
    44  	c.Assert(osenv.IsJujuXDGDataHomeSet(), jc.IsFalse)
    45  	osenv.SetJujuXDGDataHome(c.MkDir())
    46  	c.Assert(osenv.IsJujuXDGDataHomeSet(), jc.IsTrue)
    47  }