github.com/cloudbase/juju-core@v0.0.0-20140504232958-a7271ac7912f/log/syslog/config_test.go (about) 1 // Copyright 2013 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package syslog_test 5 6 import ( 7 "io/ioutil" 8 "path/filepath" 9 stdtesting "testing" 10 11 gc "launchpad.net/gocheck" 12 13 "launchpad.net/juju-core/agent" 14 "launchpad.net/juju-core/log/syslog" 15 syslogtesting "launchpad.net/juju-core/log/syslog/testing" 16 ) 17 18 func Test(t *stdtesting.T) { 19 gc.TestingT(t) 20 } 21 22 type SyslogConfigSuite struct { 23 configDir string 24 } 25 26 var _ = gc.Suite(&SyslogConfigSuite{}) 27 28 func (s *SyslogConfigSuite) SetUpTest(c *gc.C) { 29 s.configDir = c.MkDir() 30 } 31 32 func (s *SyslogConfigSuite) assertRsyslogConfigPath(c *gc.C, slConfig *syslog.SyslogConfig) { 33 slConfig.ConfigDir = s.configDir 34 slConfig.ConfigFileName = "rsyslog.conf" 35 c.Assert(slConfig.ConfigFilePath(), gc.Equals, filepath.Join(s.configDir, "rsyslog.conf")) 36 } 37 38 func (s *SyslogConfigSuite) assertRsyslogConfigContents(c *gc.C, slConfig *syslog.SyslogConfig, 39 expectedConf string) { 40 data, err := slConfig.Render() 41 c.Assert(err, gc.IsNil) 42 c.Assert(string(data), gc.Equals, expectedConf) 43 } 44 45 func (s *SyslogConfigSuite) TestAccumulateConfigRender(c *gc.C) { 46 syslogConfigRenderer := syslog.NewAccumulateConfig("some-machine", agent.DefaultLogDir, 8888, "") 47 s.assertRsyslogConfigContents( 48 c, 49 syslogConfigRenderer, 50 syslogtesting.ExpectedAccumulateSyslogConf(c, "some-machine", "", 8888), 51 ) 52 } 53 54 func (s *SyslogConfigSuite) TestAccumulateConfigWrite(c *gc.C) { 55 syslogConfigRenderer := syslog.NewAccumulateConfig("some-machine", agent.DefaultLogDir, 8888, "") 56 syslogConfigRenderer.ConfigDir = s.configDir 57 syslogConfigRenderer.ConfigFileName = "rsyslog.conf" 58 s.assertRsyslogConfigPath(c, syslogConfigRenderer) 59 err := syslogConfigRenderer.Write() 60 c.Assert(err, gc.IsNil) 61 syslogConfData, err := ioutil.ReadFile(syslogConfigRenderer.ConfigFilePath()) 62 c.Assert(err, gc.IsNil) 63 c.Assert( 64 string(syslogConfData), 65 gc.Equals, 66 syslogtesting.ExpectedAccumulateSyslogConf(c, "some-machine", "", 8888), 67 ) 68 } 69 70 func (s *SyslogConfigSuite) TestAccumulateConfigRenderWithNamespace(c *gc.C) { 71 syslogConfigRenderer := syslog.NewAccumulateConfig("some-machine", agent.DefaultLogDir, 8888, "namespace") 72 syslogConfigRenderer.LogDir += "-namespace" 73 s.assertRsyslogConfigContents( 74 c, syslogConfigRenderer, syslogtesting.ExpectedAccumulateSyslogConf( 75 c, "some-machine", "namespace", 8888, 76 ), 77 ) 78 } 79 80 func (s *SyslogConfigSuite) TestForwardConfigRender(c *gc.C) { 81 syslogConfigRenderer := syslog.NewForwardConfig( 82 "some-machine", agent.DefaultLogDir, 999, "", []string{"server"}, 83 ) 84 s.assertRsyslogConfigContents( 85 c, syslogConfigRenderer, syslogtesting.ExpectedForwardSyslogConf( 86 c, "some-machine", agent.DefaultLogDir, "", "server", 999, 87 ), 88 ) 89 } 90 91 func (s *SyslogConfigSuite) TestForwardConfigRenderWithNamespace(c *gc.C) { 92 syslogConfigRenderer := syslog.NewForwardConfig( 93 "some-machine", agent.DefaultLogDir, 999, "namespace", []string{"server"}, 94 ) 95 s.assertRsyslogConfigContents( 96 c, syslogConfigRenderer, syslogtesting.ExpectedForwardSyslogConf( 97 c, "some-machine", agent.DefaultLogDir, "namespace", "server", 999, 98 ), 99 ) 100 } 101 102 func (s *SyslogConfigSuite) TestForwardConfigWrite(c *gc.C) { 103 syslogConfigRenderer := syslog.NewForwardConfig( 104 "some-machine", agent.DefaultLogDir, 999, "", []string{"server"}, 105 ) 106 syslogConfigRenderer.ConfigDir = s.configDir 107 syslogConfigRenderer.ConfigFileName = "rsyslog.conf" 108 s.assertRsyslogConfigPath(c, syslogConfigRenderer) 109 err := syslogConfigRenderer.Write() 110 c.Assert(err, gc.IsNil) 111 syslogConfData, err := ioutil.ReadFile(syslogConfigRenderer.ConfigFilePath()) 112 c.Assert(err, gc.IsNil) 113 c.Assert( 114 string(syslogConfData), 115 gc.Equals, 116 syslogtesting.ExpectedForwardSyslogConf( 117 c, "some-machine", agent.DefaultLogDir, "", "server", 999, 118 ), 119 ) 120 }