Skip to content

Commit c3af31b

Browse files
committed
test: 更新单元测试
1 parent 4b79640 commit c3af31b

File tree

2 files changed

+3
-86
lines changed

2 files changed

+3
-86
lines changed

src/BootstrapBlazor/Services/TcpSocket/TcpSocketClientBase.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,8 +184,9 @@ public virtual async ValueTask<Memory<byte>> ReceiveAsync(CancellationToken toke
184184

185185
private async ValueTask AutoReceiveAsync()
186186
{
187+
// 自动接收方法
187188
_receiveCancellationTokenSource ??= new();
188-
while (_receiveCancellationTokenSource is { IsCancellationRequested: false })
189+
while (true)
189190
{
190191
if (SocketClientProvider is not { IsConnected: true })
191192
{
@@ -197,6 +198,7 @@ private async ValueTask AutoReceiveAsync()
197198
var len = await ReceiveCoreAsync(SocketClientProvider, buffer, _receiveCancellationTokenSource.Token);
198199
if (len == 0)
199200
{
201+
// 远端关闭或者 DisposeAsync 方法被调用时退出
200202
break;
201203
}
202204
}

test/UnitTest/Services/TcpSocketFactoryTest.cs

Lines changed: 0 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
using System.Net;
88
using System.Net.Sockets;
99
using System.Reflection;
10-
using System.Text;
1110

1211
namespace UnitTest.Services;
1312

@@ -174,7 +173,6 @@ public async Task ReceiveAsync_Timeout()
174173

175174
var client = CreateClient();
176175
client.Options.ReceiveTimeout = 100;
177-
client.SetDataHandler(new MockReceiveTimeoutHandler());
178176

179177
await client.ConnectAsync("localhost", port);
180178

@@ -190,8 +188,6 @@ public async Task ReceiveAsync_Cancel()
190188
var server = StartTcpServer(port, MockSplitPackageAsync);
191189

192190
var client = CreateClient();
193-
client.SetDataHandler(new MockReceiveTimeoutHandler());
194-
195191
await client.ConnectAsync("localhost", port);
196192

197193
var data = new ReadOnlyMemory<byte>([1, 2, 3, 4, 5]);
@@ -272,8 +268,6 @@ public async Task ReceiveAsync_Error()
272268
client.Options.ReceiveBufferSize = 1024 * 20;
273269
Assert.Equal(1024 * 20, client.Options.ReceiveBufferSize);
274270

275-
client.SetDataHandler(new MockReceiveErrorHandler());
276-
277271
ReadOnlyMemory<byte> buffer = ReadOnlyMemory<byte>.Empty;
278272
var tcs = new TaskCompletionSource();
279273

@@ -298,26 +292,6 @@ public async Task ReceiveAsync_Error()
298292
StopTcpServer(server);
299293
}
300294

301-
[Fact]
302-
public async Task CloseByRemote_Ok()
303-
{
304-
var client = CreateClient();
305-
306-
var port = 8883;
307-
var server = StartTcpServer(port, MockAutoClosePackageAsync);
308-
309-
client.SetDataHandler(new MockReceiveErrorHandler());
310-
311-
// 连接 TCP Server
312-
await client.ConnectAsync("localhost", port);
313-
314-
// 发送数据
315-
await client.SendAsync(new ReadOnlyMemory<byte>([1, 2, 3, 4, 5]));
316-
317-
// 关闭连接
318-
StopTcpServer(server);
319-
}
320-
321295
[Fact]
322296
public async Task FixLengthDataPackageHandler_Ok()
323297
{
@@ -333,17 +307,6 @@ public async Task FixLengthDataPackageHandler_Ok()
333307
var tcs = new TaskCompletionSource();
334308
ReadOnlyMemory<byte> receivedBuffer = ReadOnlyMemory<byte>.Empty;
335309

336-
// 增加数据处理适配器
337-
client.SetDataHandler(new FixLengthDataPackageHandler(7)
338-
{
339-
ReceivedCallBack = buffer =>
340-
{
341-
receivedBuffer = buffer;
342-
tcs.SetResult();
343-
return ValueTask.CompletedTask;
344-
}
345-
});
346-
347310
// 测试 SendAsync 方法
348311
var data = new ReadOnlyMemory<byte>([1, 2, 3, 4, 5]);
349312
var result = await client.SendAsync(data);
@@ -373,17 +336,6 @@ public async Task FixLengthDataPackageHandler_Sticky()
373336
var tcs = new TaskCompletionSource();
374337
ReadOnlyMemory<byte> receivedBuffer = ReadOnlyMemory<byte>.Empty;
375338

376-
// 增加数据库处理适配器
377-
client.SetDataHandler(new FixLengthDataPackageHandler(7)
378-
{
379-
ReceivedCallBack = buffer =>
380-
{
381-
receivedBuffer = buffer;
382-
tcs.SetResult();
383-
return ValueTask.CompletedTask;
384-
}
385-
});
386-
387339
// 发送数据
388340
var data = new ReadOnlyMemory<byte>([1, 2, 3, 4, 5]);
389341
await client.SendAsync(data);
@@ -425,17 +377,6 @@ public async Task DelimiterDataPackageHandler_Ok()
425377
var tcs = new TaskCompletionSource();
426378
ReadOnlyMemory<byte> receivedBuffer = ReadOnlyMemory<byte>.Empty;
427379

428-
// 增加数据库处理适配器
429-
//client.SetDataHandler(new DelimiterDataPackageHandler([0x13, 0x10])
430-
//{
431-
// ReceivedCallBack = buffer =>
432-
// {
433-
// receivedBuffer = buffer;
434-
// tcs.SetResult();
435-
// return ValueTask.CompletedTask;
436-
// }
437-
//});
438-
439380
// 发送数据
440381
var data = new ReadOnlyMemory<byte>([1, 2, 3, 4, 5]);
441382
await client.SendAsync(data);
@@ -560,12 +501,6 @@ private static async Task MockStickyPackageAsync(TcpClient client)
560501
}
561502
}
562503

563-
private static Task MockAutoClosePackageAsync(TcpClient client)
564-
{
565-
client.Close();
566-
return Task.CompletedTask;
567-
}
568-
569504
private static void StopTcpServer(TcpListener server)
570505
{
571506
server?.Stop();
@@ -661,26 +596,6 @@ public override async ValueTask ReceiveAsync(ReadOnlyMemory<byte> data, Cancella
661596
}
662597
}
663598

664-
class MockSendTimeoutHandler : DataPackageHandlerBase
665-
{
666-
public override async ValueTask<ReadOnlyMemory<byte>> SendAsync(ReadOnlyMemory<byte> data, CancellationToken token = default)
667-
{
668-
// 模拟发送超时
669-
await Task.Delay(200, token);
670-
return data;
671-
}
672-
}
673-
674-
class MockReceiveTimeoutHandler : DataPackageHandlerBase
675-
{
676-
public override async ValueTask ReceiveAsync(ReadOnlyMemory<byte> data, CancellationToken token = default)
677-
{
678-
// 模拟接收超时
679-
await Task.Delay(200, token);
680-
await base.ReceiveAsync(data, token);
681-
}
682-
}
683-
684599
class MockSendErrorSocketProvider : ISocketClientProvider
685600
{
686601
public bool IsConnected { get; private set; }

0 commit comments

Comments
 (0)