private void SetupMocks()
        {
            var sequence = new MockSequence();

            #region SftpSession.Connect()

            _sessionMock.InSequence(sequence).Setup(p => p.CreateChannelSession()).Returns(_channelSessionMock.Object);
            _channelSessionMock.InSequence(sequence).Setup(p => p.Open());
            _channelSessionMock.InSequence(sequence).Setup(p => p.SendSubsystemRequest("sftp")).Returns(true);
            _channelSessionMock.InSequence(sequence).Setup(p => p.IsOpen).Returns(true);
            _channelSessionMock.InSequence(sequence).Setup(p => p.SendData(_sftpInitRequestBytes)).Callback(
                () =>
            {
                _channelSessionMock.Raise(c => c.DataReceived += null,
                                          new ChannelDataEventArgs(0, _sftpVersionResponse.GetBytes()));
            });
            _channelSessionMock.InSequence(sequence).Setup(p => p.IsOpen).Returns(true);
            _channelSessionMock.InSequence(sequence).Setup(p => p.SendData(_sftpRealPathRequestBytes)).Callback(
                () =>
            {
                _channelSessionMock.Raise(c => c.DataReceived += null,
                                          new ChannelDataEventArgs(0, _sftpNameResponse.GetBytes()));
            });

            #endregion SftpSession.Connect()

            _channelSessionMock.InSequence(sequence).Setup(p => p.IsOpen).Returns(true);
            _channelSessionMock.InSequence(sequence).Setup(p => p.SendData(_sftpStatVfsRequestBytes)).Callback(
                () =>
            {
                _channelSessionMock.Raise(c => c.DataReceived += null,
                                          new ChannelDataEventArgs(0, _sftpStatVfsResponse.GetBytes()));
            });
        }
Exemple #2
0
        private void SetupMocks()
        {
            var sequence = new MockSequence();

            #region SftpSession.Connect()

            _sessionMock.InSequence(sequence).Setup(p => p.CreateChannelSession()).Returns(_channelSessionMock.Object);
            _channelSessionMock.InSequence(sequence).Setup(p => p.Open());
            _channelSessionMock.InSequence(sequence).Setup(p => p.SendSubsystemRequest("sftp")).Returns(true);
            _channelSessionMock.InSequence(sequence).Setup(p => p.IsOpen).Returns(true);
            _channelSessionMock.InSequence(sequence).Setup(p => p.SendData(_sftpInitRequestBytes))
            .Callback(() =>
            {
                _channelSessionMock.Raise(c => c.DataReceived += null,
                                          new ChannelDataEventArgs(0, _sftpVersionResponse.GetBytes()));
            });
            _sftpResponseFactoryMock.InSequence(sequence)
            .Setup(p => p.Create(0U, (byte)SftpMessageTypes.Version, _encoding))
            .Returns(_sftpVersionResponse);
            _channelSessionMock.InSequence(sequence).Setup(p => p.IsOpen).Returns(true);
            _channelSessionMock.InSequence(sequence).Setup(p => p.SendData(_sftpRealPathRequestBytes))
            .Callback(() =>
            {
                _channelSessionMock.Raise(c => c.DataReceived += null,
                                          new ChannelDataEventArgs(0, _sftpNameResponse.GetBytes()));
            });
            _sftpResponseFactoryMock.InSequence(sequence)
            .Setup(p => p.Create(_protocolVersion, (byte)SftpMessageTypes.Name, _encoding))
            .Returns(_sftpNameResponse);

            #endregion SftpSession.Connect()

            _channelSessionMock.InSequence(sequence).Setup(p => p.IsOpen).Returns(true);
            _channelSessionMock.InSequence(sequence).Setup(p => p.SendData(_sftpOpenRequestBytes)).Callback(() =>
            {
                var sshMessagePayload = new byte[_sftpHandleResponseBytes.Length + 40];
                Buffer.BlockCopy(_sftpHandleResponseBytes, 0, sshMessagePayload, 0, _sftpHandleResponseBytes.Length);
                Buffer.BlockCopy(_sftpDataResponseBytes, 0, sshMessagePayload, _sftpHandleResponseBytes.Length, 40);

                _channelSessionMock.Raise(c => c.DataReceived += null,
                                          new ChannelDataEventArgs(0, sshMessagePayload));
            });
            _sftpResponseFactoryMock.InSequence(sequence)
            .Setup(p => p.Create(_protocolVersion, (byte)SftpMessageTypes.Handle, _encoding))
            .Returns(new SftpHandleResponse(_protocolVersion));
            _channelSessionMock.InSequence(sequence).Setup(p => p.IsOpen).Returns(true);
            _channelSessionMock.InSequence(sequence).Setup(p => p.SendData(_sftpReadRequestBytes)).Callback(() =>
            {
                var sshMessagePayload = new byte[_sftpDataResponseBytes.Length - 40];
                Buffer.BlockCopy(_sftpDataResponseBytes, 40, sshMessagePayload, 0, _sftpDataResponseBytes.Length - 40);

                _channelSessionMock.Raise(c => c.DataReceived += null,
                                          new ChannelDataEventArgs(0, sshMessagePayload));
            });
            _sftpResponseFactoryMock.InSequence(sequence)
            .Setup(p => p.Create(_protocolVersion, (byte)SftpMessageTypes.Data, _encoding))
            .Returns(new SftpDataResponse(_protocolVersion));
        }