| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 | using System;using Microsoft.VisualStudio.TestTools.UnitTesting;using Moq;namespace Renci.SshNet.Tests.Classes{    [TestClass]    public class SftpClientTest_Dispose_Disconnected : SftpClientTestBase    {        private SftpClient _sftpClient;        private ConnectionInfo _connectionInfo;        private int _operationTimeout;        protected override void SetupData()        {            _connectionInfo = new ConnectionInfo("host", "user", new NoneAuthenticationMethod("userauth"));            _operationTimeout = new Random().Next(1000, 10000);            _sftpClient = new SftpClient(_connectionInfo, false, ServiceFactoryMock.Object)            {                OperationTimeout = TimeSpan.FromMilliseconds(_operationTimeout)            };        }        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.CreateSftpResponseFactory())                                   .Returns(SftpResponseFactoryMock.Object);            _ = ServiceFactoryMock.InSequence(sequence)                                   .Setup(p => p.CreateSftpSession(SessionMock.Object, _operationTimeout, _connectionInfo.Encoding, SftpResponseFactoryMock.Object))                                   .Returns(SftpSessionMock.Object);            _ = SftpSessionMock.InSequence(sequence)                                .Setup(p => p.Connect());            _ = SessionMock.InSequence(sequence)                            .Setup(p => p.OnDisconnecting());            _ = SftpSessionMock.InSequence(sequence)                                .Setup(p => p.Dispose());            _ = SessionMock.InSequence(sequence)                            .Setup(p => p.Dispose());        }        protected override void Arrange()        {            base.Arrange();            _sftpClient.Connect();            _sftpClient.Disconnect();        }        protected override void Act()        {            _sftpClient.Dispose();        }        [TestMethod]        public void CreateSftpMessageFactoryOnServiceFactoryShouldBeInvokedOnce()        {            ServiceFactoryMock.Verify(p => p.CreateSftpResponseFactory(), Times.Once);        }        [TestMethod]        public void CreateSftpSessionOnServiceFactoryShouldBeInvokedOnce()        {            ServiceFactoryMock.Verify(                p => p.CreateSftpSession(SessionMock.Object, _operationTimeout, _connectionInfo.Encoding, SftpResponseFactoryMock.Object),                Times.Once);        }        [TestMethod]        public void CreateSocketFactoryOnServiceFactoryShouldBeInvokedOnce()        {            ServiceFactoryMock.Verify(p => p.CreateSocketFactory(), Times.Once);        }        [TestMethod]        public void CreateSessionOnServiceFactoryShouldBeInvokedOnce()        {            ServiceFactoryMock.Verify(p => p.CreateSession(_connectionInfo, SocketFactoryMock.Object),                                       Times.Once);        }        [TestMethod]        public void DisconnectOnNetConfSessionShouldNeverBeInvoked()        {            SftpSessionMock.Verify(p => p.Disconnect(), Times.Never);        }        [TestMethod]        public void DisconnectOnSessionShouldNeverBeInvoked()        {            SessionMock.Verify(p => p.Disconnect(), Times.Never);        }        [TestMethod]        public void DisposeOnNetConfSessionShouldBeInvokedOnce()        {            SftpSessionMock.Verify(p => p.Dispose(), Times.Once);        }        [TestMethod]        public void DisposeOnSessionShouldBeInvokedOnce()        {            SessionMock.Verify(p => p.Dispose(), Times.Once);        }        [TestMethod]        public void OnDisconnectingOnSessionShouldBeInvokedOnce()        {            SessionMock.Verify(p => p.OnDisconnecting(), Times.Once);        }    }}
 |