mirror of https://github.com/docker/docs.git
50 lines
1008 B
Go
50 lines
1008 B
Go
package utils
|
|
|
|
import (
|
|
"github.com/docker/beam"
|
|
"github.com/dotcloud/docker/pkg/testutils"
|
|
"testing"
|
|
)
|
|
|
|
func TestHubSendEmpty(t *testing.T) {
|
|
hub := NewHub()
|
|
// Send to empty hub should silently drop
|
|
if r, w, err := hub.Send(&beam.Message{"hello", nil}, beam.R|beam.W); err != nil {
|
|
t.Fatal(err)
|
|
} else if r != nil {
|
|
t.Fatalf("%#v", r)
|
|
} else if w != nil {
|
|
t.Fatalf("%#v", w)
|
|
}
|
|
}
|
|
|
|
type CountSender int
|
|
|
|
func (s *CountSender) Send(msg *beam.Message, mode int) (beam.Receiver, beam.Sender, error) {
|
|
(*s)++
|
|
return nil, nil, nil
|
|
}
|
|
|
|
func TestHubSendOneHandler(t *testing.T) {
|
|
hub := NewHub()
|
|
defer hub.Close()
|
|
testutils.Timeout(t, func() {
|
|
in, _, err := hub.Send(&beam.Message{"register", nil}, beam.R)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
go func() {
|
|
if _, _, err := hub.Send(&beam.Message{"hello", nil}, 0); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
}()
|
|
msg, _, _, err := in.Receive(0)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if msg.Name != "hello" {
|
|
t.Fatalf("%#v", msg)
|
|
}
|
|
})
|
|
}
|