SftpHandleResponseTest.cs 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1.  using System;
  2. using System.Linq;
  3. using Microsoft.VisualStudio.TestTools.UnitTesting;
  4. using Renci.SshNet.Common;
  5. using Renci.SshNet.Sftp;
  6. using Renci.SshNet.Sftp.Responses;
  7. namespace Renci.SshNet.Tests.Classes.Sftp.Responses
  8. {
  9. [TestClass]
  10. public class SftpHandleResponseTest
  11. {
  12. private Random _random;
  13. private uint _protocolVersion;
  14. private uint _responseId;
  15. private byte[] _handle;
  16. [TestInitialize]
  17. public void Init()
  18. {
  19. _random = new Random();
  20. _protocolVersion = (uint) _random.Next(0, int.MaxValue);
  21. _responseId = (uint) _random.Next(0, int.MaxValue);
  22. _handle = new byte[_random.Next(1, 10)];
  23. _random.NextBytes(_handle);
  24. }
  25. [TestMethod]
  26. public void Constructor()
  27. {
  28. var target = new SftpHandleResponse(_protocolVersion);
  29. Assert.IsNull(target.Handle);
  30. Assert.AreEqual(_protocolVersion, target.ProtocolVersion);
  31. Assert.AreEqual((uint) 0, target.ResponseId);
  32. Assert.AreEqual(SftpMessageTypes.Handle, target.SftpMessageType);
  33. }
  34. [TestMethod]
  35. public void Load()
  36. {
  37. var target = new SftpHandleResponse(_protocolVersion);
  38. #if TUNING
  39. var sshDataStream = new SshDataStream(4 + 1 + 4 + _handle.Length);
  40. sshDataStream.Position = 4; // skip 4 bytes for SSH packet length
  41. #else
  42. var sshDataStream = new SshDataStream(1 + 4 + _handle.Length);
  43. #endif
  44. sshDataStream.WriteByte((byte) SftpMessageTypes.Handle);
  45. sshDataStream.Write(_responseId);
  46. sshDataStream.Write((uint) _handle.Length);
  47. sshDataStream.Write(_handle, 0, _handle.Length);
  48. target.Load(sshDataStream.ToArray());
  49. Assert.IsNotNull(target.Handle);
  50. Assert.IsTrue(target.Handle.SequenceEqual(_handle));
  51. Assert.AreEqual(_protocolVersion, target.ProtocolVersion);
  52. Assert.AreEqual(_responseId, target.ResponseId);
  53. Assert.AreEqual(SftpMessageTypes.Handle, target.SftpMessageType);
  54. }
  55. }
  56. }