Skip to content

Commit 8aadb67

Browse files
committed
test: 更新粘包通讯单元测试
1 parent bd89e36 commit 8aadb67

1 file changed

Lines changed: 24 additions & 3 deletions

File tree

test/UnitTest/Services/TcpSocketFactoryTest.cs

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -345,12 +345,31 @@ public async Task FixLengthDataPackageHandler_Sticky()
345345
var port = 8885;
346346
var server = StartTcpServer(port, MockStickyPackageAsync);
347347
var client = CreateClient();
348+
var tcs = new TaskCompletionSource();
349+
var receivedBuffer = new byte[1024];
348350

349351
// 连接 TCP Server
350352
var connect = await client.ConnectAsync("localhost", port);
351353

352-
var tcs = new TaskCompletionSource();
353-
ReadOnlyMemory<byte> receivedBuffer = ReadOnlyMemory<byte>.Empty;
354+
// 设置数据适配器
355+
var adapter = new DataPackageAdapter
356+
{
357+
DataPackageHandler = new FixLengthDataPackageHandler(7),
358+
ReceivedCallBack = buffer =>
359+
{
360+
// buffer 即是接收到的数据
361+
buffer.CopyTo(receivedBuffer);
362+
receivedBuffer = receivedBuffer[..buffer.Length];
363+
tcs.SetResult();
364+
return ValueTask.CompletedTask;
365+
}
366+
};
367+
368+
client.ReceivedCallBack = async buffer =>
369+
{
370+
// 将接收到的数据传递给 DataPackageAdapter
371+
await adapter.ReceiveAsync(buffer);
372+
};
354373

355374
// 发送数据
356375
var data = new ReadOnlyMemory<byte>([1, 2, 3, 4, 5]);
@@ -361,7 +380,9 @@ public async Task FixLengthDataPackageHandler_Sticky()
361380

362381
// 验证接收到的数据
363382
Assert.Equal(receivedBuffer.ToArray(), [1, 2, 3, 4, 5, 3, 4]);
364-
receivedBuffer = ReadOnlyMemory<byte>.Empty;
383+
384+
// 重置接收缓冲区
385+
receivedBuffer = new byte[1024];
365386
tcs = new TaskCompletionSource();
366387

367388
// 等待第二次数据

0 commit comments

Comments
 (0)