1
// Copyright 2016 Canonical Ltd.
2
// Licensed under the AGPLv3, see LICENCE file for details.
9
"github.com/juju/errors"
10
"github.com/juju/testing"
11
jc "github.com/juju/testing/checkers"
12
gc "gopkg.in/check.v1"
14
"github.com/juju/juju/worker/resumer"
15
"github.com/juju/juju/worker/workertest"
18
type ConfigSuite struct {
19
testing.IsolationSuite
22
var _ = gc.Suite(&ConfigSuite{})
24
func (*ConfigSuite) TestValid(c *gc.C) {
25
config := validConfig()
26
err := config.Validate()
27
c.Check(err, jc.ErrorIsNil)
30
func (*ConfigSuite) TestNilFacade(c *gc.C) {
31
config := validConfig()
33
checkInvalid(c, config, "nil Facade not valid")
36
func (*ConfigSuite) TestNilClock(c *gc.C) {
37
config := validConfig()
39
checkInvalid(c, config, "nil Clock not valid")
42
func (*ConfigSuite) TestZeroInterval(c *gc.C) {
43
config := validConfig()
45
checkInvalid(c, config, "non-positive Interval not valid")
48
func (*ConfigSuite) TestNegativeInterval(c *gc.C) {
49
config := validConfig()
50
config.Interval = -time.Minute
51
checkInvalid(c, config, "non-positive Interval not valid")
54
func validConfig() resumer.Config {
55
return resumer.Config{
56
Facade: &fakeFacade{},
58
Interval: time.Minute,
62
func checkInvalid(c *gc.C, config resumer.Config, match string) {
63
check := func(err error) {
64
c.Check(err, jc.Satisfies, errors.IsNotValid)
65
c.Check(err, gc.ErrorMatches, match)
67
check(config.Validate())
69
worker, err := resumer.NewResumer(config)
70
workertest.CheckNilOrKill(c, worker)