13
16
"github.com/juju/juju/apiserver/params"
14
17
apiservertesting "github.com/juju/juju/apiserver/testing"
15
18
"github.com/juju/juju/state"
16
"github.com/juju/names"
19
statetesting "github.com/juju/juju/state/testing"
19
22
type agentEntityWatcherSuite struct{}
29
32
changes := make(chan struct{}, 1)
30
33
// Simulate initial event.
31
34
changes <- struct{}{}
32
return &fakeNotifyWatcher{changes}
35
return &fakeNotifyWatcher{changes: changes}
35
38
type fakeNotifyWatcher struct {
36
40
changes chan struct{}
39
func (*fakeNotifyWatcher) Stop() error {
43
func (*fakeNotifyWatcher) Kill() {}
45
func (*fakeNotifyWatcher) Wait() error {
49
func (*fakeNotifyWatcher) Err() error {
43
func (w *fakeNotifyWatcher) Stop() error {
48
func (w *fakeNotifyWatcher) Kill() {
53
func (w *fakeNotifyWatcher) Wait() error {
57
func (w *fakeNotifyWatcher) Err() error {
53
61
func (w *fakeNotifyWatcher) Changes() <-chan struct{} {
114
122
c.Assert(err, jc.ErrorIsNil)
115
123
c.Assert(result.Results, gc.HasLen, 0)
126
type multiNotifyWatcherSuite struct{}
128
var _ = gc.Suite(&multiNotifyWatcherSuite{})
130
func (*multiNotifyWatcherSuite) TestMultiNotifyWatcher(c *gc.C) {
131
w0 := &fakeNotifyWatcher{changes: make(chan struct{}, 1)}
132
w1 := &fakeNotifyWatcher{changes: make(chan struct{}, 1)}
133
w0.changes <- struct{}{}
134
w1.changes <- struct{}{}
136
mw := common.NewMultiNotifyWatcher(w0, w1)
137
defer statetesting.AssertStop(c, mw)
139
wc := statetesting.NewNotifyWatcherC(c, nopSyncStarter{}, mw)
142
w0.changes <- struct{}{}
144
w1.changes <- struct{}{}
147
w0.changes <- struct{}{}
148
w1.changes <- struct{}{}
152
func (*multiNotifyWatcherSuite) TestMultiNotifyWatcherStop(c *gc.C) {
153
w0 := &fakeNotifyWatcher{changes: make(chan struct{}, 1)}
154
w1 := &fakeNotifyWatcher{changes: make(chan struct{}, 1)}
155
w0.changes <- struct{}{}
156
w1.changes <- struct{}{}
158
mw := common.NewMultiNotifyWatcher(w0, w1)
159
wc := statetesting.NewNotifyWatcherC(c, nopSyncStarter{}, mw)
161
statetesting.AssertCanStopWhenSending(c, mw)
165
type nopSyncStarter struct{}
167
func (nopSyncStarter) StartSync() {}