6 "github.com/docker/docker/pkg/discovery"
7 "github.com/go-check/check"
10 // Hook up gocheck into the "go test" runner.
11 func Test(t *testing.T) { check.TestingT(t) }
13 type discoverySuite struct{}
15 var _ = check.Suite(&discoverySuite{})
17 func (s *discoverySuite) TestWatch(c *check.C) {
19 d.Initialize("foo", 1000, 0, nil)
20 stopCh := make(chan struct{})
21 ch, errCh := d.Watch(stopCh)
23 // We have to drain the error channel otherwise Watch will get stuck.
29 expected := discovery.Entries{
30 &discovery.Entry{Host: "1.1.1.1", Port: "1111"},
33 c.Assert(d.Register("1.1.1.1:1111"), check.IsNil)
34 c.Assert(<-ch, check.DeepEquals, expected)
36 expected = discovery.Entries{
37 &discovery.Entry{Host: "1.1.1.1", Port: "1111"},
38 &discovery.Entry{Host: "2.2.2.2", Port: "2222"},
41 c.Assert(d.Register("2.2.2.2:2222"), check.IsNil)
42 c.Assert(<-ch, check.DeepEquals, expected)
44 // Stop and make sure it closes all channels.
46 c.Assert(<-ch, check.IsNil)
47 c.Assert(<-errCh, check.IsNil)