github.com/wallyworld/juju@v0.0.0-20161013125918-6cf1bc9d917a/container/directory_test.go (about)

     1  // Copyright 2013 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package container_test
     5  
     6  import (
     7  	"os"
     8  	"path/filepath"
     9  
    10  	jc "github.com/juju/testing/checkers"
    11  	gc "gopkg.in/check.v1"
    12  
    13  	"github.com/juju/juju/container"
    14  	"github.com/juju/juju/testing"
    15  )
    16  
    17  type DirectorySuite struct {
    18  	testing.BaseSuite
    19  	containerDir string
    20  	removedDir   string
    21  }
    22  
    23  var _ = gc.Suite(&DirectorySuite{})
    24  
    25  func (s *DirectorySuite) SetUpTest(c *gc.C) {
    26  	s.BaseSuite.SetUpTest(c)
    27  	s.containerDir = c.MkDir()
    28  	s.PatchValue(&container.ContainerDir, s.containerDir)
    29  	s.removedDir = c.MkDir()
    30  	s.PatchValue(&container.RemovedContainerDir, s.removedDir)
    31  }
    32  
    33  func (*DirectorySuite) TestNewContainerDir(c *gc.C) {
    34  	dir, err := container.NewDirectory("testing")
    35  	c.Assert(err, jc.ErrorIsNil)
    36  	c.Assert(dir, jc.IsDirectory)
    37  }
    38  
    39  func (s *DirectorySuite) TestRemoveContainerDir(c *gc.C) {
    40  	dir, err := container.NewDirectory("testing")
    41  	c.Assert(err, jc.ErrorIsNil)
    42  	err = container.RemoveDirectory("testing")
    43  	c.Assert(err, jc.ErrorIsNil)
    44  	c.Assert(dir, jc.DoesNotExist)
    45  	c.Assert(filepath.Join(s.removedDir, "testing"), jc.IsDirectory)
    46  }
    47  
    48  func (s *DirectorySuite) TestRemoveContainerDirWithClash(c *gc.C) {
    49  	dir, err := container.NewDirectory("testing")
    50  	c.Assert(err, jc.ErrorIsNil)
    51  
    52  	clash := filepath.Join(s.removedDir, "testing")
    53  	err = os.MkdirAll(clash, 0755)
    54  	c.Assert(err, jc.ErrorIsNil)
    55  
    56  	err = container.RemoveDirectory("testing")
    57  	c.Assert(err, jc.ErrorIsNil)
    58  	c.Assert(dir, jc.DoesNotExist)
    59  	c.Assert(filepath.Join(s.removedDir, "testing.1"), jc.IsDirectory)
    60  }