| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 | using System;using Microsoft.VisualStudio.TestTools.UnitTesting;using Renci.SshNet.Common;using Renci.SshNet.Sftp;using Renci.SshNet.Sftp.Responses;namespace Renci.SshNet.Tests.Classes.Sftp.Responses{    [TestClass]    public class SftpExtendedReplyResponseTest    {        private Random _random;        private uint _protocolVersion;        private uint _responseId;        [TestInitialize]        public void Init()        {            _random = new Random();            _protocolVersion = (uint)_random.Next(0, int.MaxValue);            _responseId = (uint)_random.Next(0, int.MaxValue);        }        [TestMethod]        public void Constructor()        {            var target = new SftpExtendedReplyResponse(_protocolVersion);            Assert.AreEqual(_protocolVersion, target.ProtocolVersion);            Assert.AreEqual((uint)0, target.ResponseId);            Assert.AreEqual(SftpMessageTypes.ExtendedReply, target.SftpMessageType);        }        [TestMethod]        public void Load()        {            var target = new SftpExtendedReplyResponse(_protocolVersion);            var sshDataStream = new SshDataStream(4);            sshDataStream.Write(_responseId);            target.Load(sshDataStream.ToArray());            Assert.AreEqual(_protocolVersion, target.ProtocolVersion);            Assert.AreEqual(_responseId, target.ResponseId);            Assert.AreEqual(SftpMessageTypes.ExtendedReply, target.SftpMessageType);        }        [TestMethod]        public void GetReply_StatVfsReplyInfo()        {            var bsize = (ulong)_random.Next(0, int.MaxValue);            var frsize = (ulong)_random.Next(0, int.MaxValue);            var blocks = (ulong)_random.Next(0, int.MaxValue);            var bfree = (ulong)_random.Next(0, int.MaxValue);            var bavail = (ulong)_random.Next(0, int.MaxValue);            var files = (ulong)_random.Next(0, int.MaxValue);            var ffree = (ulong)_random.Next(0, int.MaxValue);            var favail = (ulong)_random.Next(0, int.MaxValue);            var sid = (ulong)_random.Next(0, int.MaxValue);            var namemax = (ulong)_random.Next(0, int.MaxValue);            var sshDataStream = new SshDataStream(4 + 1 + 4 + 88)            {                Position = 4 // skip 4 bytes for SSH packet length            };            sshDataStream.WriteByte((byte)SftpMessageTypes.Attrs);            sshDataStream.Write(_responseId);            sshDataStream.Write(bsize);            sshDataStream.Write(frsize);            sshDataStream.Write(blocks);            sshDataStream.Write(bfree);            sshDataStream.Write(bavail);            sshDataStream.Write(files);            sshDataStream.Write(ffree);            sshDataStream.Write(favail);            sshDataStream.Write(sid);            sshDataStream.Write((ulong)0x2);            sshDataStream.Write(namemax);            var sshData = sshDataStream.ToArray();            var target = new SftpExtendedReplyResponse(_protocolVersion);            target.Load(sshData, 5, sshData.Length - 5);            var reply = target.GetReply<StatVfsReplyInfo>();            Assert.IsNotNull(reply);            var information = reply.Information;            Assert.IsNotNull(information);            Assert.AreEqual(bavail, information.AvailableBlocks);            Assert.AreEqual(favail, information.AvailableNodes);            Assert.AreEqual(frsize, information.BlockSize);            Assert.AreEqual(bsize, information.FileSystemBlockSize);            Assert.AreEqual(bfree, information.FreeBlocks);            Assert.AreEqual(ffree, information.FreeNodes);            Assert.IsFalse(information.IsReadOnly);            Assert.AreEqual(namemax, information.MaxNameLenght);            Assert.AreEqual(sid, information.Sid);            Assert.IsFalse(information.SupportsSetUid);            Assert.AreEqual(blocks, information.TotalBlocks);            Assert.AreEqual(files, information.TotalNodes);        }    }}
 |