github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/worker/caasoperator/paths_test.go (about) 1 // Copyright 2017 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package caasoperator_test 5 6 import ( 7 "path/filepath" 8 9 "github.com/juju/testing" 10 jc "github.com/juju/testing/checkers" 11 gc "gopkg.in/check.v1" 12 "gopkg.in/juju/names.v2" 13 14 "github.com/juju/juju/worker/caasoperator" 15 ) 16 17 type PathsSuite struct { 18 testing.IsolationSuite 19 } 20 21 var _ = gc.Suite(&PathsSuite{}) 22 23 func relPathFunc(base string) func(parts ...string) string { 24 return func(parts ...string) string { 25 allParts := append([]string{base}, parts...) 26 return filepath.Join(allParts...) 27 } 28 } 29 30 func (s *PathsSuite) TestPaths(c *gc.C) { 31 dataDir := c.MkDir() 32 paths := caasoperator.NewPaths(dataDir, names.NewApplicationTag("foo")) 33 34 relData := relPathFunc(dataDir) 35 relAgent := relPathFunc(relData("agents", "application-foo")) 36 c.Assert(paths, jc.DeepEquals, caasoperator.Paths{ 37 ToolsDir: relData("tools"), 38 Runtime: caasoperator.RuntimePaths{ 39 JujuRunSocket: relAgent("run.socket"), 40 HookCommandServerSocket: "@" + relAgent("agent.socket"), 41 }, 42 State: caasoperator.StatePaths{ 43 BaseDir: relAgent(), 44 CharmDir: relAgent("charm"), 45 RelationsDir: relAgent("state", "relations"), 46 BundlesDir: relAgent("state", "bundles"), 47 DeployerDir: relAgent("state", "deployer"), 48 OperationsFile: relAgent("state", "operator"), 49 MetricsSpoolDir: relAgent("state", "spool", "metrics"), 50 }, 51 }) 52 } 53 54 func (s *PathsSuite) TestContextInterface(c *gc.C) { 55 paths := caasoperator.Paths{ 56 ToolsDir: "/path/to/tools", 57 Runtime: caasoperator.RuntimePaths{ 58 HookCommandServerSocket: "/path/to/socket", 59 }, 60 State: caasoperator.StatePaths{ 61 CharmDir: "/path/to/charm", 62 MetricsSpoolDir: "/path/to/spool/metrics", 63 }, 64 } 65 c.Assert(paths.GetToolsDir(), gc.Equals, "/path/to/tools") 66 c.Assert(paths.GetCharmDir(), gc.Equals, "/path/to/charm") 67 c.Assert(paths.GetHookCommandSocket(), gc.Equals, "/path/to/socket") 68 c.Assert(paths.GetMetricsSpoolDir(), gc.Equals, "/path/to/spool/metrics") 69 }