Skip to content

Commit bd89e36

Browse files
committed
test: 修复 FixLengthDataPackageHandler 单元测试
1 parent c3af31b commit bd89e36

File tree

1 file changed

+22
-6
lines changed

1 file changed

+22
-6
lines changed

test/UnitTest/Services/TcpSocketFactoryTest.cs

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -298,15 +298,34 @@ public async Task FixLengthDataPackageHandler_Ok()
298298
var port = 8884;
299299
var server = StartTcpServer(port, MockSplitPackageAsync);
300300
var client = CreateClient();
301+
var tcs = new TaskCompletionSource();
302+
var receivedBuffer = new byte[1024];
303+
304+
// 设置数据适配器
305+
var adapter = new DataPackageAdapter
306+
{
307+
DataPackageHandler = new FixLengthDataPackageHandler(7),
308+
ReceivedCallBack = buffer =>
309+
{
310+
// buffer 即是接收到的数据
311+
buffer.CopyTo(receivedBuffer);
312+
receivedBuffer = receivedBuffer[..buffer.Length];
313+
tcs.SetResult();
314+
return ValueTask.CompletedTask;
315+
}
316+
};
317+
318+
client.ReceivedCallBack = async buffer =>
319+
{
320+
// 将接收到的数据传递给 DataPackageAdapter
321+
await adapter.ReceiveAsync(buffer);
322+
};
301323

302324
// 测试 ConnectAsync 方法
303325
var connect = await client.ConnectAsync("localhost", port);
304326
Assert.True(connect);
305327
Assert.True(client.IsConnected);
306328

307-
var tcs = new TaskCompletionSource();
308-
ReadOnlyMemory<byte> receivedBuffer = ReadOnlyMemory<byte>.Empty;
309-
310329
// 测试 SendAsync 方法
311330
var data = new ReadOnlyMemory<byte>([1, 2, 3, 4, 5]);
312331
var result = await client.SendAsync(data);
@@ -315,9 +334,6 @@ public async Task FixLengthDataPackageHandler_Ok()
315334
await tcs.Task;
316335
Assert.Equal(receivedBuffer.ToArray(), [1, 2, 3, 4, 5, 3, 4]);
317336

318-
// 模拟延时等待内部继续读取逻辑完成,测试内部 _receiveCancellationTokenSource 取消逻辑
319-
await Task.Delay(10);
320-
321337
// 关闭连接
322338
await client.CloseAsync();
323339
StopTcpServer(server);

0 commit comments

Comments
 (0)