| package beam |
| |
| import ( |
| "github.com/dotcloud/docker/pkg/beam/data" |
| "testing" |
| ) |
| |
| func TestSendConn(t *testing.T) { |
| a, b, err := USocketPair() |
| if err != nil { |
| t.Fatal(err) |
| } |
| defer a.Close() |
| defer b.Close() |
| go func() { |
| conn, err := SendConn(a, data.Empty().Set("type", "connection").Bytes()) |
| if err != nil { |
| t.Fatal(err) |
| } |
| if err := conn.Send(data.Empty().Set("foo", "bar").Bytes(), nil); err != nil { |
| t.Fatal(err) |
| } |
| conn.CloseWrite() |
| }() |
| payload, conn, err := ReceiveConn(b) |
| if err != nil { |
| t.Fatal(err) |
| } |
| if val := data.Message(string(payload)).Get("type"); val == nil || val[0] != "connection" { |
| t.Fatalf("%v != %v\n", val, "connection") |
| } |
| msg, _, err := conn.Receive() |
| if err != nil { |
| t.Fatal(err) |
| } |
| if val := data.Message(string(msg)).Get("foo"); val == nil || val[0] != "bar" { |
| t.Fatalf("%v != %v\n", val, "bar") |
| } |
| } |