コード例 #1
0
ファイル: client_test.go プロジェクト: straumur/restservice
func TestSimpleEcho(t *testing.T) {

	echoOnce.Do(startEchoServer)

	url := fmt.Sprintf("ws://%s%s", echoServerAddr, "/event")
	conn, err := websocket.Dial(url, "", "http://localhost/")
	if err != nil {
		t.Errorf("WebSocket handshake error: %v", err)
		return
	}

	var event straumur.Event
	event.Description = "hello"
	if err := websocket.JSON.Send(conn, event); err != nil {
		t.Errorf("Write: %v", err)
	}
	if err := websocket.JSON.Receive(conn, &event); err != nil {
		t.Errorf("Read: %v", err)
	}
	if event.ID != 1 {
		t.Errorf("event: expected %d got %d", 1, event.ID)
	}
	if event.Description != "hello" {
		t.Errorf("event: expected %q got %q", "hello", event.Description)
	}
	if err := websocket.JSON.Send(conn, event); err != nil {
		t.Errorf("Write: %v", err)
	}
	if err := websocket.JSON.Receive(conn, &event); err != nil {
		t.Errorf("Read: %v", err)
	}
	if event.ID != 2 {
		t.Errorf("event: expected %d got %d", 2, event.ID)
	}
	conn.Close()
}