Skip to content

Commit 6d22d42

Browse files
committed
test: 更新终止符数据处理器单元测试
1 parent 8aadb67 commit 6d22d42

File tree

1 file changed

+26
-7
lines changed

1 file changed

+26
-7
lines changed

test/UnitTest/Services/TcpSocketFactoryTest.cs

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -407,13 +407,32 @@ public async Task DelimiterDataPackageHandler_Ok()
407407
var port = 8886;
408408
var server = StartTcpServer(port, MockDelimiterPackageAsync);
409409
var client = CreateClient();
410+
var tcs = new TaskCompletionSource();
411+
var receivedBuffer = new byte[1024];
412+
413+
// 设置数据适配器
414+
var adapter = new DataPackageAdapter
415+
{
416+
DataPackageHandler = new DelimiterDataPackageHandler(new byte[] { 13, 10 }),
417+
ReceivedCallBack = buffer =>
418+
{
419+
// buffer 即是接收到的数据
420+
buffer.CopyTo(receivedBuffer);
421+
receivedBuffer = receivedBuffer[..buffer.Length];
422+
tcs.SetResult();
423+
return ValueTask.CompletedTask;
424+
}
425+
};
426+
427+
client.ReceivedCallBack = async buffer =>
428+
{
429+
// 将接收到的数据传递给 DataPackageAdapter
430+
await adapter.ReceiveAsync(buffer);
431+
};
410432

411433
// 连接 TCP Server
412434
var connect = await client.ConnectAsync("localhost", port);
413435

414-
var tcs = new TaskCompletionSource();
415-
ReadOnlyMemory<byte> receivedBuffer = ReadOnlyMemory<byte>.Empty;
416-
417436
// 发送数据
418437
var data = new ReadOnlyMemory<byte>([1, 2, 3, 4, 5]);
419438
await client.SendAsync(data);
@@ -422,15 +441,15 @@ public async Task DelimiterDataPackageHandler_Ok()
422441
await tcs.Task;
423442

424443
// 验证接收到的数据
425-
Assert.Equal(receivedBuffer.ToArray(), [1, 2, 3, 4, 5, 0x13, 0x10]);
444+
Assert.Equal(receivedBuffer.ToArray(), [1, 2, 3, 4, 5, 13, 10]);
426445

427446
// 等待第二次数据
428-
receivedBuffer = ReadOnlyMemory<byte>.Empty;
447+
receivedBuffer = new byte[1024];
429448
tcs = new TaskCompletionSource();
430449
await tcs.Task;
431450

432451
// 验证接收到的数据
433-
Assert.Equal(receivedBuffer.ToArray(), [5, 6, 0x13, 0x10]);
452+
Assert.Equal(receivedBuffer.ToArray(), [5, 6, 13, 10]);
434453

435454
// 关闭连接
436455
await client.CloseAsync();
@@ -480,7 +499,7 @@ private static async Task MockDelimiterPackageAsync(TcpClient client)
480499
await Task.Delay(20);
481500

482501
// 模拟拆包发送第二段数据
483-
await stream.WriteAsync(new byte[] { 0x13, 0x10, 0x5, 0x6, 0x13, 0x10 }, CancellationToken.None);
502+
await stream.WriteAsync(new byte[] { 13, 10, 0x5, 0x6, 13, 10 }, CancellationToken.None);
484503
}
485504
}
486505

0 commit comments

Comments
 (0)