Skip to content

Commit 2ce7544

Browse files
committed
test: 增加 AddDataPackageAdapter 单元测试
1 parent 797298f commit 2ce7544

1 file changed

Lines changed: 42 additions & 0 deletions

File tree

test/UnitTestTcpSocket/TcpSocketFactoryTest.cs

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -800,6 +800,48 @@ public async Task TryGetTypeConverter_Ok()
800800
server.Stop();
801801
}
802802

803+
[Fact]
804+
public async Task AddDataPackageAdapter_Ok()
805+
{
806+
var port = 8896;
807+
var server = StartTcpServer(port, MockSplitPackageAsync);
808+
809+
var client = CreateClient();
810+
var tcs = new TaskCompletionSource();
811+
var receivedBuffer = new byte[128];
812+
var receivedBuffer2 = new byte[128];
813+
814+
// 连接 TCP Server
815+
var connect = await client.ConnectAsync("localhost", port);
816+
817+
client.AddDataPackageAdapter(new DataPackageAdapter(new FixLengthDataPackageHandler(7)), ReceivedCallBack);
818+
client.AddDataPackageAdapter(new DataPackageAdapter(new FixLengthDataPackageHandler(7)), ReceivedCallBack2);
819+
820+
var data = new ReadOnlyMemory<byte>([1, 2, 3, 4, 5]);
821+
await client.SendAsync(data);
822+
823+
// 等待接收数据处理完成
824+
await tcs.Task;
825+
client.RemoveDataPackageAdapter(ReceivedCallBack);
826+
client.RemoveDataPackageAdapter(ReceivedCallBack2);
827+
828+
ValueTask ReceivedCallBack(ReadOnlyMemory<byte> buffer)
829+
{
830+
// buffer 即是接收到的数据
831+
buffer.CopyTo(receivedBuffer);
832+
receivedBuffer = receivedBuffer[..buffer.Length];
833+
tcs.SetResult();
834+
return ValueTask.CompletedTask;
835+
}
836+
837+
ValueTask ReceivedCallBack2(ReadOnlyMemory<byte> buffer)
838+
{
839+
// buffer 即是接收到的数据
840+
buffer.CopyTo(receivedBuffer2);
841+
receivedBuffer2 = receivedBuffer2[..buffer.Length];
842+
return ValueTask.CompletedTask;
843+
}
844+
}
803845
private static TcpListener StartTcpServer(int port, Func<TcpClient, Task> handler)
804846
{
805847
var server = new TcpListener(IPAddress.Loopback, port);

0 commit comments

Comments
 (0)