github.com/mhilton/juju-juju@v0.0.0-20150901100907-a94dd2c73455/utils/syslog/service_test.go (about)

     1  // Copyright 2015 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package syslog_test
     5  
     6  import (
     7  	"github.com/juju/errors"
     8  	jc "github.com/juju/testing/checkers"
     9  	gc "gopkg.in/check.v1"
    10  
    11  	"github.com/juju/juju/utils/syslog"
    12  )
    13  
    14  type serviceSuite struct {
    15  	syslog.BaseSuite
    16  }
    17  
    18  var _ = gc.Suite(&serviceSuite{})
    19  
    20  func (s *serviceSuite) TestRestartRoot(c *gc.C) {
    21  	s.Stub.Euid = 0
    22  
    23  	err := syslog.Restart()
    24  	c.Assert(err, jc.ErrorIsNil)
    25  
    26  	s.Stub.CheckCallNames(c, "Geteuid", "Restart")
    27  }
    28  
    29  func (s *serviceSuite) TestRestartNotRoot(c *gc.C) {
    30  	s.Stub.Euid = 1000
    31  
    32  	err := syslog.Restart()
    33  
    34  	c.Check(err, gc.ErrorMatches, `.*must be root.*`)
    35  	s.Stub.CheckCallNames(c, "Geteuid")
    36  }
    37  
    38  func (s *serviceSuite) TestRestartError(c *gc.C) {
    39  	s.Stub.Euid = 0
    40  	failure := errors.New("<failed>")
    41  	s.Stub.SetErrors(nil, failure) // Geteuid, Restart
    42  
    43  	err := syslog.Restart()
    44  
    45  	c.Check(errors.Cause(err), gc.Equals, failure)
    46  	s.Stub.CheckCallNames(c, "Geteuid", "Restart")
    47  }