123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- package memory
- import (
- "testing"
- "github.com/docker/docker/pkg/discovery"
- "github.com/go-check/check"
- )
- // Hook up gocheck into the "go test" runner.
- func Test(t *testing.T) { check.TestingT(t) }
- type discoverySuite struct{}
- var _ = check.Suite(&discoverySuite{})
- func (s *discoverySuite) TestWatch(c *check.C) {
- d := &Discovery{}
- d.Initialize("foo", 1000, 0, nil)
- stopCh := make(chan struct{})
- ch, errCh := d.Watch(stopCh)
- // We have to drain the error channel otherwise Watch will get stuck.
- go func() {
- for range errCh {
- }
- }()
- expected := discovery.Entries{
- &discovery.Entry{Host: "1.1.1.1", Port: "1111"},
- }
- c.Assert(d.Register("1.1.1.1:1111"), check.IsNil)
- c.Assert(<-ch, check.DeepEquals, expected)
- expected = discovery.Entries{
- &discovery.Entry{Host: "1.1.1.1", Port: "1111"},
- &discovery.Entry{Host: "2.2.2.2", Port: "2222"},
- }
- c.Assert(d.Register("2.2.2.2:2222"), check.IsNil)
- c.Assert(<-ch, check.DeepEquals, expected)
- // Stop and make sure it closes all channels.
- close(stopCh)
- c.Assert(<-ch, check.IsNil)
- c.Assert(<-errCh, check.IsNil)
- }
|