Skip to content

Commit 8c8f744

Browse files
committed
test: 增加泛型单元测试
1 parent c2a499f commit 8c8f744

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
@@ -874,6 +874,48 @@ ValueTask ReceivedCallBack(ReadOnlyMemory<byte> buffer)
874874
return ValueTask.CompletedTask;
875875
}
876876
}
877+
878+
[Fact]
879+
public async Task SetDataPackageAdapter_Generic()
880+
{
881+
var port = 8898;
882+
var server = StartTcpServer(port, MockSplitPackageAsync);
883+
884+
var client = CreateClient();
885+
var tcs = new TaskCompletionSource();
886+
var receivedBuffer = new byte[128];
887+
888+
// 连接 TCP Server
889+
var connect = await client.ConnectAsync("localhost", port);
890+
891+
client.AddDataPackageAdapter(new DataPackageAdapter(new FixLengthDataPackageHandler(7)), ReceivedCallBack);
892+
client.SetDataPackageAdapter<MockEntity>(new FixLengthDataPackageHandler(7), ReceivedEntityCallBack);
893+
894+
client.AddDataPackageAdapter(new DataPackageAdapter(new FixLengthDataPackageHandler(7)), ReceivedCallBack);
895+
client.SetDataPackageAdapter(new FixLengthDataPackageHandler(7), new MockSocketDataConverter(), ReceivedEntityCallBack);
896+
897+
var data = new ReadOnlyMemory<byte>([1, 2, 3, 4, 5]);
898+
await client.SendAsync(data);
899+
900+
// 等待接收数据处理完成
901+
await tcs.Task;
902+
903+
ValueTask ReceivedCallBack(ReadOnlyMemory<byte> buffer)
904+
{
905+
// buffer 即是接收到的数据
906+
buffer.CopyTo(receivedBuffer);
907+
receivedBuffer = receivedBuffer[..buffer.Length];
908+
tcs.SetResult();
909+
return ValueTask.CompletedTask;
910+
}
911+
912+
Task ReceivedEntityCallBack(MockEntity? entity)
913+
{
914+
tcs.SetResult();
915+
return Task.CompletedTask;
916+
}
917+
}
918+
877919
private static TcpListener StartTcpServer(int port, Func<TcpClient, Task> handler)
878920
{
879921
var server = new TcpListener(IPAddress.Loopback, port);

0 commit comments

Comments
 (0)