| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- using System;
- using System.Threading;
- using System.Threading.Tasks;
- using Microsoft.VisualStudio.TestTools.UnitTesting;
- using Moq;
- #if !NET
- using Renci.SshNet.Abstractions;
- #endif
- using Renci.SshNet.Common;
- using Renci.SshNet.Connection;
- namespace Renci.SshNet.Tests.Classes
- {
- [TestClass]
- public class BaseClientTest_ConnectAsync_Timeout
- {
- private BaseClient _client;
- [TestInitialize]
- public void Init()
- {
- var sessionMock = new Mock<ISession>();
- var serviceFactoryMock = new Mock<IServiceFactory>();
- var socketFactoryMock = new Mock<ISocketFactory>();
- sessionMock.Setup(p => p.ConnectAsync(It.IsAny<CancellationToken>()))
- .Returns<CancellationToken>(c => Task.Delay(Timeout.Infinite, c));
- serviceFactoryMock.Setup(p => p.CreateSocketFactory())
- .Returns(socketFactoryMock.Object);
- var connectionInfo = new ConnectionInfo("host", "user", new PasswordAuthenticationMethod("user", "pwd"))
- {
- Timeout = TimeSpan.FromSeconds(1)
- };
- serviceFactoryMock.Setup(p => p.CreateSession(connectionInfo, socketFactoryMock.Object))
- .Returns(sessionMock.Object);
- _client = new MyClient(connectionInfo, false, serviceFactoryMock.Object);
- }
- [TestMethod]
- public async Task ConnectAsyncWithTimeoutThrowsSshTimeoutException()
- {
- await Assert.ThrowsExceptionAsync<SshOperationTimeoutException>(() => _client.ConnectAsync(CancellationToken.None));
- }
- [TestMethod]
- public async Task ConnectAsyncWithCancelledTokenThrowsOperationCancelledException()
- {
- using var cancellationTokenSource = new CancellationTokenSource();
- await cancellationTokenSource.CancelAsync();
- await Assert.ThrowsExceptionAsync<OperationCanceledException>(() => _client.ConnectAsync(cancellationTokenSource.Token));
- }
- [TestCleanup]
- public void Cleanup()
- {
- _client?.Dispose();
- }
- private class MyClient : BaseClient
- {
- public MyClient(ConnectionInfo connectionInfo, bool ownsConnectionInfo, IServiceFactory serviceFactory) : base(connectionInfo, ownsConnectionInfo, serviceFactory)
- {
- }
- }
- }
- }
|