using System;
using System.Net;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Renci.SshNet.Tests.Common;
using Renci.SshNet.Tests.Properties;
namespace Renci.SshNet.Tests.Classes
{
///
/// Provides connection information when password authentication method is used
///
[TestClass]
public class PasswordConnectionInfoTest : TestBase
{
[TestMethod]
public void Test_ConnectionInfo_Host_Is_Null()
{
try
{
_ = new PasswordConnectionInfo(null, Resources.USERNAME, Resources.PASSWORD);
Assert.Fail();
}
catch (ArgumentNullException ex)
{
Assert.IsNull(ex.InnerException);
Assert.AreEqual("host", ex.ParamName);
}
}
[TestMethod]
public void Test_ConnectionInfo_Username_Is_Null()
{
Assert.ThrowsException(() => new PasswordConnectionInfo(Resources.HOST, null, Resources.PASSWORD));
}
[TestMethod]
public void Test_ConnectionInfo_Password_Is_Null()
{
Assert.ThrowsException(
() => new PasswordConnectionInfo(Resources.HOST, Resources.USERNAME, (string)null));
}
[TestMethod]
public void Test_ConnectionInfo_Username_Is_Whitespace()
{
Assert.ThrowsException(() => new PasswordConnectionInfo(Resources.HOST, " ", Resources.PASSWORD));
}
[TestMethod]
public void Test_ConnectionInfo_SmallPortNumber()
{
Assert.ThrowsException(
() => new PasswordConnectionInfo(Resources.HOST, IPEndPoint.MinPort - 1, Resources.USERNAME, Resources.PASSWORD));
}
[TestMethod]
public void Test_ConnectionInfo_BigPortNumber()
{
Assert.ThrowsException(
() => new PasswordConnectionInfo(Resources.HOST, IPEndPoint.MaxPort + 1, Resources.USERNAME, Resources.PASSWORD));
}
}
}