~juju-qa/ubuntu/xenial/juju/2.0-rc2

« back to all changes in this revision

Viewing changes to src/github.com/juju/juju/worker/leadership/manifold_test.go

  • Committer: Nicholas Skaggs
  • Date: 2016-09-30 14:39:30 UTC
  • mfrom: (1.8.1)
  • Revision ID: nicholas.skaggs@canonical.com-20160930143930-vwwhrefh6ftckccy
import upstream

Show diffs side-by-side

added added

removed removed

Lines of Context:
9
9
        "github.com/juju/errors"
10
10
        "github.com/juju/testing"
11
11
        jc "github.com/juju/testing/checkers"
 
12
        "github.com/juju/utils/clock"
12
13
        gc "gopkg.in/check.v1"
13
14
 
14
15
        "github.com/juju/juju/agent"
34
35
        s.manifold = leadership.Manifold(leadership.ManifoldConfig{
35
36
                AgentName:           "agent-name",
36
37
                APICallerName:       "api-caller-name",
 
38
                Clock:               clock.WallClock,
37
39
                LeadershipGuarantee: 123456 * time.Millisecond,
38
40
        })
39
41
}
42
44
        c.Check(s.manifold.Inputs, jc.DeepEquals, []string{"agent-name", "api-caller-name"})
43
45
}
44
46
 
 
47
func (s *ManifoldSuite) TestStartClockMissing(c *gc.C) {
 
48
        manifold := leadership.Manifold(leadership.ManifoldConfig{})
 
49
        context := dt.StubContext(nil, nil)
 
50
        worker, err := manifold.Start(context)
 
51
        c.Check(worker, gc.IsNil)
 
52
        c.Check(err.Error(), gc.Equals, "missing Clock not valid")
 
53
        c.Check(err, jc.Satisfies, errors.IsNotValid)
 
54
}
 
55
 
45
56
func (s *ManifoldSuite) TestStartAgentMissing(c *gc.C) {
46
57
        context := dt.StubContext(nil, map[string]interface{}{
47
58
                "agent-name":      dependency.ErrMissing,
71
82
                "agent-name":      dummyAgent,
72
83
                "api-caller-name": dummyApiCaller,
73
84
        })
74
 
        s.PatchValue(&leadership.NewManifoldWorker, func(a agent.Agent, apiCaller base.APICaller, guarantee time.Duration) (worker.Worker, error) {
75
 
                s.AddCall("newManifoldWorker", a, apiCaller, guarantee)
 
85
        s.PatchValue(&leadership.NewManifoldWorker, func(a agent.Agent, apiCaller base.APICaller, clock clock.Clock, guarantee time.Duration) (worker.Worker, error) {
 
86
                s.AddCall("newManifoldWorker", a, apiCaller, clock, guarantee)
76
87
                return nil, errors.New("blammo")
77
88
        })
78
89
 
81
92
        c.Check(err, gc.ErrorMatches, "blammo")
82
93
        s.CheckCalls(c, []testing.StubCall{{
83
94
                FuncName: "newManifoldWorker",
84
 
                Args:     []interface{}{dummyAgent, dummyApiCaller, 123456 * time.Millisecond},
 
95
                Args:     []interface{}{dummyAgent, dummyApiCaller, clock.WallClock, 123456 * time.Millisecond},
85
96
        }})
86
97
}
87
98
 
93
104
                "api-caller-name": dummyApiCaller,
94
105
        })
95
106
        dummyWorker := &dummyWorker{}
96
 
        s.PatchValue(&leadership.NewManifoldWorker, func(a agent.Agent, apiCaller base.APICaller, guarantee time.Duration) (worker.Worker, error) {
97
 
                s.AddCall("newManifoldWorker", a, apiCaller, guarantee)
 
107
        s.PatchValue(&leadership.NewManifoldWorker, func(a agent.Agent, apiCaller base.APICaller, clock clock.Clock, guarantee time.Duration) (worker.Worker, error) {
 
108
                s.AddCall("newManifoldWorker", a, apiCaller, clock, guarantee)
98
109
                return dummyWorker, nil
99
110
        })
100
111
 
103
114
        c.Check(worker, gc.Equals, dummyWorker)
104
115
        s.CheckCalls(c, []testing.StubCall{{
105
116
                FuncName: "newManifoldWorker",
106
 
                Args:     []interface{}{dummyAgent, dummyApiCaller, 123456 * time.Millisecond},
 
117
                Args:     []interface{}{dummyAgent, dummyApiCaller, clock.WallClock, 123456 * time.Millisecond},
107
118
        }})
108
119
}
109
120