Skip to content

Commit d922c51

Browse files
committed
test: 增加连接超时单元测试
1 parent 991471e commit d922c51

File tree

1 file changed

+35
-3
lines changed

1 file changed

+35
-3
lines changed

test/UnitTest/Services/TcpSocketFactoryTest.cs

Lines changed: 35 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,14 @@ public async Task GetOrCreate_Ok()
4848
[Fact]
4949
public async Task ConnectAsync_Timeout()
5050
{
51-
var client = CreateClient();
52-
client.Options.ConnectTimeout = 1;
51+
var client = CreateClient(builder =>
52+
{
53+
// 增加发送报错 MockSocket
54+
builder.AddTransient<ISocketClientProvider, MockConnectTimeoutSocketProvider>();
55+
});
56+
client.Options.ConnectTimeout = 10;
5357

5458
var connect = await client.ConnectAsync("localhost", 9999);
55-
await Task.Delay(5);
5659
Assert.False(connect);
5760
}
5861

@@ -703,6 +706,35 @@ public ValueTask<bool> SendAsync(ReadOnlyMemory<byte> data, CancellationToken to
703706
}
704707
}
705708

709+
class MockConnectTimeoutSocketProvider : ISocketClientProvider
710+
{
711+
public bool IsConnected { get; private set; }
712+
713+
public IPEndPoint LocalEndPoint { get; set; } = new IPEndPoint(IPAddress.Any, 0);
714+
715+
public ValueTask CloseAsync()
716+
{
717+
return ValueTask.CompletedTask;
718+
}
719+
720+
public async ValueTask<bool> ConnectAsync(IPEndPoint endPoint, CancellationToken token = default)
721+
{
722+
await Task.Delay(1000, token);
723+
IsConnected = false;
724+
return false;
725+
}
726+
727+
public ValueTask<int> ReceiveAsync(Memory<byte> buffer, CancellationToken token = default)
728+
{
729+
return ValueTask.FromResult(0);
730+
}
731+
732+
public ValueTask<bool> SendAsync(ReadOnlyMemory<byte> data, CancellationToken token = default)
733+
{
734+
return ValueTask.FromResult(true);
735+
}
736+
}
737+
706738
class MockSendTimeoutSocketProvider : ISocketClientProvider
707739
{
708740
public bool IsConnected { get; private set; }

0 commit comments

Comments
 (0)