|
|
package client
|
|
|
|
|
|
import (
|
|
|
"testing"
|
|
|
"time"
|
|
|
|
|
|
"github.com/noahlann/nnet/pkg/client"
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
"github.com/stretchr/testify/require"
|
|
|
)
|
|
|
|
|
|
func TestTCPClientNew(t *testing.T) {
|
|
|
config := &client.Config{
|
|
|
Addr: "tcp://127.0.0.1:0",
|
|
|
}
|
|
|
|
|
|
cli := NewTCPClient(config)
|
|
|
require.NotNil(t, cli, "Expected client to be non-nil")
|
|
|
}
|
|
|
|
|
|
func TestTCPClientNewWithNilConfig(t *testing.T) {
|
|
|
// NewTCPClient接受nil配置,会使用默认配置
|
|
|
cli := NewTCPClient(nil)
|
|
|
require.NotNil(t, cli, "Expected client to be non-nil")
|
|
|
}
|
|
|
|
|
|
func TestTCPClientConnect(t *testing.T) {
|
|
|
t.Skip("Skipping connect test - requires actual server")
|
|
|
|
|
|
// 这个测试需要实际的服务器连接
|
|
|
// 可以放在集成测试中
|
|
|
}
|
|
|
|
|
|
func TestTCPClientIsConnected(t *testing.T) {
|
|
|
config := &client.Config{
|
|
|
Addr: "tcp://127.0.0.1:6995",
|
|
|
ReadTimeout: 5 * time.Second,
|
|
|
WriteTimeout: 5 * time.Second,
|
|
|
}
|
|
|
|
|
|
cli := NewTCPClient(config)
|
|
|
require.NotNil(t, cli, "Expected client to be non-nil")
|
|
|
|
|
|
// 测试初始连接状态
|
|
|
assert.False(t, cli.IsConnected(), "Expected client to not be connected initially")
|
|
|
}
|
|
|
|
|
|
func TestTCPClientWriteRead(t *testing.T) {
|
|
|
t.Skip("Skipping write/read test - requires actual server connection")
|
|
|
|
|
|
// 这个测试需要实际的服务器连接
|
|
|
// 可以放在集成测试中
|
|
|
}
|
|
|
|
|
|
func TestTCPClientClose(t *testing.T) {
|
|
|
config := &client.Config{
|
|
|
Addr: "tcp://127.0.0.1:6995",
|
|
|
}
|
|
|
|
|
|
cli := NewTCPClient(config)
|
|
|
require.NotNil(t, cli)
|
|
|
|
|
|
// 测试关闭未连接的客户端(应该不报错)
|
|
|
err := cli.Close()
|
|
|
require.NoError(t, err, "Expected no error when closing unconnected client")
|
|
|
|
|
|
// 验证客户端已关闭
|
|
|
assert.False(t, cli.IsConnected(), "Expected client to not be connected after close")
|
|
|
}
|
|
|
|
|
|
func TestTCPClientDisconnect(t *testing.T) {
|
|
|
config := &client.Config{
|
|
|
Addr: "tcp://127.0.0.1:6995",
|
|
|
}
|
|
|
|
|
|
cli := NewTCPClient(config)
|
|
|
require.NotNil(t, cli)
|
|
|
|
|
|
// 测试断开未连接的客户端(应该不报错)
|
|
|
err := cli.Disconnect()
|
|
|
require.NoError(t, err, "Expected no error when disconnecting unconnected client")
|
|
|
}
|
|
|
|
|
|
func TestTCPClientSendNotConnected(t *testing.T) {
|
|
|
config := &client.Config{
|
|
|
Addr: "tcp://127.0.0.1:6995",
|
|
|
}
|
|
|
|
|
|
cli := NewTCPClient(config)
|
|
|
require.NotNil(t, cli)
|
|
|
|
|
|
// 测试未连接时发送数据(应该返回错误)
|
|
|
err := cli.Send([]byte("test"))
|
|
|
assert.Error(t, err, "Expected error when sending without connection")
|
|
|
}
|
|
|
|
|
|
func TestTCPClientReceiveNotConnected(t *testing.T) {
|
|
|
config := &client.Config{
|
|
|
Addr: "tcp://127.0.0.1:6995",
|
|
|
}
|
|
|
|
|
|
cli := NewTCPClient(config)
|
|
|
require.NotNil(t, cli)
|
|
|
|
|
|
// 测试未连接时接收数据(应该返回错误)
|
|
|
_, err := cli.Receive()
|
|
|
assert.Error(t, err, "Expected error when receiving without connection")
|
|
|
}
|
|
|
|
|
|
func TestTCPClientReconnect(t *testing.T) {
|
|
|
t.Skip("Skipping reconnect test - requires actual server connection")
|
|
|
|
|
|
// 这个测试需要实际的服务器连接和重连逻辑
|
|
|
}
|