mirror of
https://github.com/sshnet/SSH.NET.git
synced 2026-09-10 09:15:47 +00:00
4886529ee2
* 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>
120 lines
4.2 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|
|
}
|