mirror of https://github.com/docker/docs.git
44 lines
843 B
Go
44 lines
843 B
Go
package utils
|
|
|
|
import (
|
|
"github.com/docker/libswarm/beam"
|
|
"testing"
|
|
)
|
|
|
|
func TestSendRet(t *testing.T) {
|
|
r, w := beam.Pipe()
|
|
defer r.Close()
|
|
defer w.Close()
|
|
q := NewQueue(w, 1)
|
|
defer q.Close()
|
|
ret, err := q.Send(&beam.Message{Name: "ping", Ret: beam.RetPipe})
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
go func() {
|
|
ping, err := r.Receive(beam.Ret)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if _, err := ping.Ret.Send(&beam.Message{Name: "pong"}); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
}()
|
|
pong, err := ret.Receive(0)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if pong.Name != "pong" {
|
|
t.Fatal(err)
|
|
}
|
|
}
|
|
|
|
func TestSendClose(t *testing.T) {
|
|
q := NewQueue(beam.NopSender{}, 1)
|
|
q.Send(&beam.Message{Name: "hello"})
|
|
q.Close()
|
|
if _, err := q.Send(&beam.Message{Name: "again"}); err == nil {
|
|
t.Fatal("send on closed queue should return an error")
|
|
}
|
|
}
|