Files
ssh.net/test/Renci.SshNet.Tests/Classes/NetConfClientTest_Connect_NetConfSessionConnectFailure.cs
Jacob Slusser 4886529ee2 Fixes spelling errors (#1668)
* Fixes spelling errors in comments, private members, and public members in test projects

* Adds en-GB as spell checker option; reverts notable cases of American English

* convert file UTF-16 LE BOM -> UTF-8

---------

Co-authored-by: Rob Hague <rob.hague00@gmail.com>
2025-07-12 21:01:57 +02:00

120 lines
4.2 KiB
C#

using System;
using System.Linq;
using System.Threading;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Moq;
using Renci.SshNet.Common;
using Renci.SshNet.Security;
using Renci.SshNet.Tests.Common;
namespace Renci.SshNet.Tests.Classes
{
[TestClass]
public class NetConfClientTest_Connect_NetConfSessionConnectFailure : NetConfClientTestBase
{
private ConnectionInfo _connectionInfo;
private ApplicationException _netConfSessionConnectionException;
private NetConfClient _netConfClient;
private ApplicationException _actualException;
protected override void SetupData()
{
_connectionInfo = new ConnectionInfo("host", "user", new NoneAuthenticationMethod("userauth"));
_netConfSessionConnectionException = new ApplicationException();
_netConfClient = new NetConfClient(_connectionInfo, false, ServiceFactoryMock.Object);
}
protected override void SetupMocks()
{
var sequence = new MockSequence();
_ = ServiceFactoryMock.InSequence(sequence)
.Setup(p => p.CreateSocketFactory())
.Returns(SocketFactoryMock.Object);
_ = ServiceFactoryMock.InSequence(sequence)
.Setup(p => p.CreateSession(_connectionInfo, SocketFactoryMock.Object))
.Returns(SessionMock.Object);
_ = SessionMock.InSequence(sequence)
.Setup(p => p.Connect());
_ = ServiceFactoryMock.InSequence(sequence)
.Setup(p => p.CreateNetConfSession(SessionMock.Object, -1))
.Returns(NetConfSessionMock.Object);
_ = NetConfSessionMock.InSequence(sequence)
.Setup(p => p.Connect())
.Throws(_netConfSessionConnectionException);
_ = NetConfSessionMock.InSequence(sequence)
.Setup(p => p.Dispose());
_ = SessionMock.InSequence(sequence)
.Setup(p => p.Dispose());
}
protected override void Act()
{
try
{
_netConfClient.Connect();
Assert.Fail();
}
catch (ApplicationException ex)
{
_actualException = ex;
}
}
[TestMethod]
public void ConnectShouldHaveThrownApplicationException()
{
Assert.IsNotNull(_actualException);
Assert.AreSame(_netConfSessionConnectionException, _actualException);
}
[TestMethod]
public void SessionShouldBeNull()
{
Assert.IsNull(_netConfClient.Session);
}
[TestMethod]
public void NetConfSessionShouldBeNull()
{
Assert.IsNull(_netConfClient.NetConfSession);
}
[TestMethod]
public void ErrorOccurredOnSessionShouldNoLongerBeSignaledViaErrorOccurredOnNetConfClient()
{
var errorOccurredSignalCount = 0;
_netConfClient.ErrorOccurred += (sender, args) => Interlocked.Increment(ref errorOccurredSignalCount);
SessionMock.Raise(p => p.ErrorOccured += null, new ExceptionEventArgs(new Exception()));
Assert.AreEqual(0, errorOccurredSignalCount);
}
[TestMethod]
public void HostKeyReceivedOnSessionShouldNoLongerBeSignaledViaHostKeyReceivedOnSftpClient()
{
var hostKeyReceivedSignalCount = 0;
_netConfClient.HostKeyReceived += (sender, args) => Interlocked.Increment(ref hostKeyReceivedSignalCount);
SessionMock.Raise(p => p.HostKeyReceived += null, new HostKeyEventArgs(GetKeyHostAlgorithm()));
Assert.AreEqual(0, hostKeyReceivedSignalCount);
}
private static KeyHostAlgorithm GetKeyHostAlgorithm()
{
using (var s = TestBase.GetData("Key.RSA.txt"))
{
var privateKey = new PrivateKeyFile(s);
return (KeyHostAlgorithm)privateKey.HostKeyAlgorithms.First();
}
}
}
}