package main import ( "log" "testing" ) func TestTcpHelpers(t *testing.T) { server, err := Listen("localhost:51337") if err != nil { t.Errorf("Error listening: %v\n", err) } client, err := Dial("localhost:51337") if err != nil { t.Errorf("Error dialing: %v\n", err) } var messageData string server.ListenFor(1, func(data []byte) error { log.Printf("Received message: %s\n", string(data)) messageData = string(data) return nil }) server.HandleCall(2, func(data []byte) (uint32, []byte, error) { log.Printf("Received call: %s\n", string(data)) return 3, []byte("Hello, client!"), nil }) server.HandleCall(Ping, func(data []byte) (uint32, []byte, error) { return Pong, nil, nil }) client.SendPacket(1, []byte("Hello, world!")) answer, err := client.Call(2, 3, []byte("Hello, server!")) if err != nil { t.Errorf("Error calling: %v\n", err) } _, err = client.Call(Ping, Pong, nil) if err != nil { t.Errorf("Error calling: %v\n", err) } client.Close() if string(answer) != "Hello, client!" { t.Errorf("Expected answer 'Hello, client!', got %s\n", string(answer)) } if messageData != "Hello, world!" { t.Errorf("Expected message 'Hello, world!', got %s\n", messageData) } }