| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 | using System;using System.Net;using System.Threading;using Microsoft.VisualStudio.TestTools.UnitTesting;using Moq;using Renci.SshNet.Common;using Renci.SshNet.Messages.Transport;namespace Renci.SshNet.Tests.Classes{    [TestClass]    public class SessionTest_NotConnected    {        private ConnectionInfo _connectionInfo;        private IServiceFactory _serviceFactory;        private Session _session;        [TestInitialize]        public void Setup()        {            Arrange();            Act();        }        protected void Arrange()        {            var serverEndPoint = new IPEndPoint(IPAddress.Loopback, 8122);            _connectionInfo = CreateConnectionInfo(serverEndPoint, TimeSpan.FromSeconds(5));            _serviceFactory = new Mock<IServiceFactory>(MockBehavior.Strict).Object;        }        protected void Act()        {            _session = new Session(_connectionInfo, _serviceFactory);        }        [TestMethod]        public void ClientVersionIsRenciSshNet()        {            Assert.AreEqual("SSH-2.0-Renci.SshNet.SshClient.0.0.1", _session.ClientVersion);        }        [TestMethod]        public void ConnectionInfoShouldReturnConnectionInfoPassedThroughConstructor()        {            Assert.AreSame(_connectionInfo, _session.ConnectionInfo);        }        [TestMethod]        public void IsConnectedShouldReturnFalse()        {            Assert.IsFalse(_session.IsConnected);        }        [TestMethod]        public void SendMessageShouldThrowShhConnectionException()        {            try            {                _session.SendMessage(new IgnoreMessage());                Assert.Fail();            }            catch (SshConnectionException ex)            {                Assert.AreEqual(DisconnectReason.None, ex.DisconnectReason);                Assert.IsNull(ex.InnerException);                Assert.AreEqual("Client not connected.", ex.Message);            }        }        [TestMethod]        public void SessionIdShouldReturnNull()        {            Assert.IsNull(_session.SessionId);        }        [TestMethod]        public void ServerVersionShouldReturnNull()        {            Assert.IsNull(_session.ServerVersion);        }        [TestMethod]        public void WaitOnHandle_WaitHandle_ShouldThrowArgumentNullExceptionWhenWaitHandleIsNull()        {            WaitHandle waitHandle = null;            try            {                _session.WaitOnHandle(waitHandle);                Assert.Fail();            }            catch (ArgumentNullException ex)            {                Assert.IsNull(ex.InnerException);                Assert.AreEqual("waitHandle", ex.ParamName);            }        }        [TestMethod]        public void WaitOnHandle_WaitHandleAndTimeout_ShouldThrowArgumentNullExceptionWhenWaitHandleIsNull()        {            WaitHandle waitHandle = null;            var timeout = TimeSpan.FromMinutes(5);            try            {                _session.WaitOnHandle(waitHandle, timeout);                Assert.Fail();            }            catch (ArgumentNullException ex)            {                Assert.IsNull(ex.InnerException);                Assert.AreEqual("waitHandle", ex.ParamName);            }        }        [TestMethod]        public void ISession_ConnectionInfoShouldReturnConnectionInfoPassedThroughConstructor()        {            var session = (ISession)_session;            Assert.AreSame(_connectionInfo, session.ConnectionInfo);        }        [TestMethod]        public void ISession_MessageListenerCompletedShouldBeSignaled()        {            var session = (ISession) _session;            Assert.IsNotNull(session.MessageListenerCompleted);            Assert.IsTrue(session.MessageListenerCompleted.WaitOne(0));        }        [TestMethod]        public void ISession_SendMessageShouldThrowShhConnectionException()        {            var session = (ISession)_session;            try            {                session.SendMessage(new IgnoreMessage());                Assert.Fail();            }            catch (SshConnectionException ex)            {                Assert.AreEqual(DisconnectReason.None, ex.DisconnectReason);                Assert.IsNull(ex.InnerException);                Assert.AreEqual("Client not connected.", ex.Message);            }        }        [TestMethod]        public void ISession_TrySendMessageShouldReturnFalse()        {            var session = (ISession)_session;            var actual = session.TrySendMessage(new IgnoreMessage());            Assert.IsFalse(actual);        }        [TestMethod]        public void ISession_WaitOnHandleShouldThrowArgumentNullExceptionWhenWaitHandleIsNull()        {            WaitHandle waitHandle = null;            var session = (ISession)_session;            try            {                session.WaitOnHandle(waitHandle);                Assert.Fail();            }            catch (ArgumentNullException ex)            {                Assert.IsNull(ex.InnerException);                Assert.AreEqual("waitHandle", ex.ParamName);            }        }        private static ConnectionInfo CreateConnectionInfo(IPEndPoint serverEndPoint, TimeSpan timeout)        {            var connectionInfo = new ConnectionInfo(                serverEndPoint.Address.ToString(),                serverEndPoint.Port,                "eric",                new NoneAuthenticationMethod("eric"));            connectionInfo.Timeout = timeout;            return connectionInfo;        }    }}
 |