StatVfsReplyInfoTest.cs 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. using System;
  2. using Microsoft.VisualStudio.TestTools.UnitTesting;
  3. using Renci.SshNet.Common;
  4. using Renci.SshNet.Sftp;
  5. using Renci.SshNet.Sftp.Responses;
  6. namespace Renci.SshNet.Tests.Classes.Sftp.Responses
  7. {
  8. [TestClass]
  9. public class StatVfsReplyInfoTest
  10. {
  11. private Random _random;
  12. private uint _responseId;
  13. private ulong _bsize;
  14. private ulong _frsize;
  15. private ulong _blocks;
  16. private ulong _bfree;
  17. private ulong _bavail;
  18. private ulong _files;
  19. private ulong _ffree;
  20. private ulong _favail;
  21. private ulong _sid;
  22. private ulong _namemax;
  23. [TestInitialize]
  24. public void Init()
  25. {
  26. _random = new Random();
  27. _responseId = (uint) _random.Next(0, int.MaxValue);
  28. _bsize = (ulong) _random.Next(0, int.MaxValue);
  29. _frsize = (ulong)_random.Next(0, int.MaxValue);
  30. _blocks = (ulong)_random.Next(0, int.MaxValue);
  31. _bfree = (ulong)_random.Next(0, int.MaxValue);
  32. _bavail = (ulong)_random.Next(0, int.MaxValue);
  33. _files = (ulong)_random.Next(0, int.MaxValue);
  34. _ffree = (ulong)_random.Next(0, int.MaxValue);
  35. _favail = (ulong)_random.Next(0, int.MaxValue);
  36. _sid = (ulong)_random.Next(0, int.MaxValue);
  37. _namemax = (ulong)_random.Next(0, int.MaxValue);
  38. }
  39. [TestMethod]
  40. public void Constructor()
  41. {
  42. var target = new StatVfsReplyInfo();
  43. Assert.IsNull(target.Information);
  44. }
  45. [TestMethod]
  46. public void Load()
  47. {
  48. var target = new StatVfsReplyInfo();
  49. #if TUNING
  50. var sshDataStream = new SshDataStream(4 + 1 + 4 + 88);
  51. sshDataStream.Write((uint) (sshDataStream.Capacity - 4));
  52. #else
  53. var sshDataStream = new SshDataStream(1 + 4 + 88);
  54. #endif
  55. sshDataStream.WriteByte((byte) SftpMessageTypes.ExtendedReply);
  56. sshDataStream.Write(_responseId);
  57. sshDataStream.Write(_bsize);
  58. sshDataStream.Write(_frsize);
  59. sshDataStream.Write(_blocks);
  60. sshDataStream.Write(_bfree);
  61. sshDataStream.Write(_bavail);
  62. sshDataStream.Write(_files);
  63. sshDataStream.Write(_ffree);
  64. sshDataStream.Write(_favail);
  65. sshDataStream.Write(_sid);
  66. sshDataStream.Write((ulong) 0x1);
  67. sshDataStream.Write(_namemax);
  68. target.Load(sshDataStream.ToArray());
  69. Assert.IsNotNull(target.Information);
  70. var information = target.Information;
  71. Assert.AreEqual(_bavail, information.AvailableBlocks);
  72. Assert.AreEqual(_favail, information.AvailableNodes);
  73. Assert.AreEqual(_frsize, information.BlockSize);
  74. Assert.AreEqual(_bsize, information.FileSystemBlockSize);
  75. Assert.AreEqual(_bfree, information.FreeBlocks);
  76. Assert.AreEqual(_ffree, information.FreeNodes);
  77. Assert.IsTrue(information.IsReadOnly);
  78. Assert.AreEqual(_namemax, information.MaxNameLenght);
  79. Assert.AreEqual(_sid, information.Sid);
  80. Assert.IsTrue(information.SupportsSetUid);
  81. Assert.AreEqual(_blocks, information.TotalBlocks);
  82. Assert.AreEqual(_files, information.TotalNodes);
  83. }
  84. }
  85. }