1
// Copyright 2013 Canonical Ltd.
2
// Licensed under the AGPLv3, see LICENCE file for details.
10
jc "github.com/juju/testing/checkers"
11
gc "gopkg.in/check.v1"
13
"github.com/juju/juju/container"
14
"github.com/juju/juju/testing"
17
type DirectorySuite struct {
23
var _ = gc.Suite(&DirectorySuite{})
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)
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)
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)
48
func (s *DirectorySuite) TestRemoveContainerDirWithClash(c *gc.C) {
49
dir, err := container.NewDirectory("testing")
50
c.Assert(err, jc.ErrorIsNil)
52
clash := filepath.Join(s.removedDir, "testing")
53
err = os.MkdirAll(clash, 0755)
54
c.Assert(err, jc.ErrorIsNil)
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)