github.com/makyo/juju@v0.0.0-20160425123129-2608902037e9/service/common/service_test.go (about)

     1  // Copyright 2015 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package common_test
     5  
     6  import (
     7  	"github.com/juju/testing"
     8  	jc "github.com/juju/testing/checkers"
     9  	gc "gopkg.in/check.v1"
    10  
    11  	"github.com/juju/juju/service/common"
    12  )
    13  
    14  type serviceSuite struct {
    15  	testing.IsolationSuite
    16  }
    17  
    18  var _ = gc.Suite(&serviceSuite{})
    19  
    20  func (*serviceSuite) TestNoConfMissing(c *gc.C) {
    21  	service := common.Service{
    22  		Name: "a-service",
    23  	}
    24  	noConf := service.NoConf()
    25  
    26  	c.Check(noConf, jc.IsTrue)
    27  }
    28  
    29  func (*serviceSuite) TestNoConfEmpty(c *gc.C) {
    30  	service := common.Service{
    31  		Name: "a-service",
    32  		Conf: common.Conf{},
    33  	}
    34  	noConf := service.NoConf()
    35  
    36  	c.Check(noConf, jc.IsTrue)
    37  }
    38  
    39  func (*serviceSuite) TestNoConfFalse(c *gc.C) {
    40  	service := common.Service{
    41  		Name: "a-service",
    42  		Conf: common.Conf{
    43  			Desc:      "some service",
    44  			ExecStart: "/path/to/some-command x y z",
    45  		},
    46  	}
    47  	noConf := service.NoConf()
    48  
    49  	c.Check(noConf, jc.IsFalse)
    50  }
    51  
    52  func (*serviceSuite) TestValidateOkay(c *gc.C) {
    53  	service := common.Service{
    54  		Name: "a-service",
    55  		Conf: common.Conf{
    56  			Desc:      "some service",
    57  			ExecStart: "/path/to/some-command x y z",
    58  		},
    59  	}
    60  	err := service.Validate(renderer)
    61  
    62  	c.Check(err, jc.ErrorIsNil)
    63  }
    64  
    65  func (*serviceSuite) TestValidateMissingName(c *gc.C) {
    66  	service := common.Service{
    67  		Conf: common.Conf{
    68  			Desc:      "some service",
    69  			ExecStart: "/path/to/some-command x y z",
    70  		},
    71  	}
    72  	err := service.Validate(renderer)
    73  
    74  	c.Check(err, gc.ErrorMatches, ".*missing Name.*")
    75  }
    76  
    77  func (*serviceSuite) TestValidateMissingDesc(c *gc.C) {
    78  	service := common.Service{
    79  		Name: "a-service",
    80  		Conf: common.Conf{
    81  			ExecStart: "/path/to/some-command x y z",
    82  		},
    83  	}
    84  	err := service.Validate(renderer)
    85  
    86  	c.Check(err, gc.ErrorMatches, ".*missing Desc.*")
    87  }
    88  
    89  func (*serviceSuite) TestValidateMissingExecStart(c *gc.C) {
    90  	service := common.Service{
    91  		Name: "a-service",
    92  		Conf: common.Conf{
    93  			Desc: "some service",
    94  		},
    95  	}
    96  	err := service.Validate(renderer)
    97  
    98  	c.Check(err, gc.ErrorMatches, ".*missing ExecStart.*")
    99  }