mirror of
https://github.com/sshnet/SSH.NET.git
synced 2026-09-10 09:15:47 +00:00
c0a353a4de
* Preparation to enforce formatting and style in CI - enabled IDE0055 to enforce formatting on build - disabled SA1137 and SA1025 because they are already covered by IDE0055 - disabled SA1021 because it conflicts with csharp_space_after_cast * Cleanup formatting and style on codebase This commit has no manual changes, it is the result of running "dotnet format whitespace" and "dotnet format style" * new formatting fixes after merge * appveyor: set git autocrlf as suggested by sharwell to hopefully fix Windows CI. * use autocrlf input to hopefully fix Linux tests * fix formatting * use autocrlf input for Linux only * set csharp_space_after_cast to false * Revert SA1021 suppression --------- Co-authored-by: Robert Hague <rh@johnstreetcapital.com>
101 lines
5.3 KiB
C#
101 lines
5.3 KiB
C#
using System.Collections.Generic;
|
|
|
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
|
|
|
using Moq;
|
|
|
|
namespace Renci.SshNet.Tests.Classes
|
|
{
|
|
[TestClass]
|
|
public class ClientAuthenticationTest_Success_MultiList_PostponePartialAccessAuthenticationMethod : ClientAuthenticationTestBase
|
|
{
|
|
private int _partialSuccessLimit;
|
|
private ClientAuthentication _clientAuthentication;
|
|
|
|
protected override void SetupData()
|
|
{
|
|
_partialSuccessLimit = 3;
|
|
}
|
|
|
|
protected override void SetupMocks()
|
|
{
|
|
var seq = new MockSequence();
|
|
|
|
_ = SessionMock.InSequence(seq)
|
|
.Setup(p => p.RegisterMessage("SSH_MSG_USERAUTH_FAILURE"));
|
|
_ = SessionMock.InSequence(seq)
|
|
.Setup(p => p.RegisterMessage("SSH_MSG_USERAUTH_SUCCESS"));
|
|
_ = SessionMock.InSequence(seq)
|
|
.Setup(p => p.RegisterMessage("SSH_MSG_USERAUTH_BANNER"));
|
|
_ = ConnectionInfoMock.InSequence(seq)
|
|
.Setup(p => p.CreateNoneAuthenticationMethod())
|
|
.Returns(NoneAuthenticationMethodMock.Object);
|
|
_ = NoneAuthenticationMethodMock.InSequence(seq)
|
|
.Setup(p => p.Authenticate(SessionMock.Object))
|
|
.Returns(AuthenticationResult.Failure);
|
|
_ = ConnectionInfoMock.InSequence(seq)
|
|
.Setup(p => p.AuthenticationMethods)
|
|
.Returns(new List<IAuthenticationMethod>
|
|
{
|
|
KeyboardInteractiveAuthenticationMethodMock.Object,
|
|
PasswordAuthenticationMethodMock.Object,
|
|
PublicKeyAuthenticationMethodMock.Object
|
|
});
|
|
_ = NoneAuthenticationMethodMock.InSequence(seq)
|
|
.Setup(p => p.AllowedAuthentications)
|
|
.Returns(new[] { "password" });
|
|
_ = KeyboardInteractiveAuthenticationMethodMock.InSequence(seq)
|
|
.Setup(p => p.Name)
|
|
.Returns("keyboard-interactive");
|
|
_ = PasswordAuthenticationMethodMock.InSequence(seq)
|
|
.Setup(p => p.Name)
|
|
.Returns("password");
|
|
_ = PublicKeyAuthenticationMethodMock.InSequence(seq)
|
|
.Setup(p => p.Name)
|
|
.Returns("publickey");
|
|
_ = PasswordAuthenticationMethodMock.InSequence(seq)
|
|
.Setup(p => p.Authenticate(SessionMock.Object))
|
|
.Returns(AuthenticationResult.PartialSuccess);
|
|
_ = PasswordAuthenticationMethodMock.InSequence(seq)
|
|
.Setup(p => p.AllowedAuthentications)
|
|
.Returns(new[] { "password", "publickey" });
|
|
_ = KeyboardInteractiveAuthenticationMethodMock.InSequence(seq)
|
|
.Setup(p => p.Name)
|
|
.Returns("keyboard-interactive");
|
|
_ = PasswordAuthenticationMethodMock.InSequence(seq)
|
|
.Setup(p => p.Name)
|
|
.Returns("password");
|
|
_ = PublicKeyAuthenticationMethodMock.InSequence(seq)
|
|
.Setup(p => p.Name)
|
|
.Returns("publickey");
|
|
_ = PublicKeyAuthenticationMethodMock.InSequence(seq)
|
|
.Setup(p => p.Authenticate(SessionMock.Object))
|
|
.Returns(AuthenticationResult.Failure);
|
|
_ = PublicKeyAuthenticationMethodMock.InSequence(seq)
|
|
.Setup(p => p.Name)
|
|
.Returns("publickey");
|
|
_ = PasswordAuthenticationMethodMock.InSequence(seq)
|
|
.Setup(p => p.Authenticate(SessionMock.Object))
|
|
.Returns(AuthenticationResult.Success);
|
|
_ = SessionMock.InSequence(seq)
|
|
.Setup(p => p.UnRegisterMessage("SSH_MSG_USERAUTH_FAILURE"));
|
|
_ = SessionMock.InSequence(seq)
|
|
.Setup(p => p.UnRegisterMessage("SSH_MSG_USERAUTH_SUCCESS"));
|
|
_ = SessionMock.InSequence(seq)
|
|
.Setup(p => p.UnRegisterMessage("SSH_MSG_USERAUTH_BANNER"));
|
|
}
|
|
|
|
protected override void Arrange()
|
|
{
|
|
base.Arrange();
|
|
|
|
_clientAuthentication = new ClientAuthentication(_partialSuccessLimit);
|
|
}
|
|
|
|
protected override void Act()
|
|
{
|
|
_clientAuthentication.Authenticate(ConnectionInfoMock.Object, SessionMock.Object);
|
|
}
|
|
}
|
|
}
|