KeyExchangeDhGroupExchangeRequestTest.cs 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. using System;
  2. using Microsoft.VisualStudio.TestTools.UnitTesting;
  3. using Renci.SshNet.Common;
  4. using Renci.SshNet.Messages.Transport;
  5. using Renci.SshNet.Tests.Common;
  6. namespace Renci.SshNet.Tests.Classes.Messages.Transport
  7. {
  8. /// <summary>
  9. /// Represents SSH_MSG_KEX_DH_GEX_REQUEST message.
  10. /// </summary>
  11. [TestClass]
  12. public class KeyExchangeDhGroupExchangeRequestTest
  13. {
  14. private uint _minimum;
  15. private uint _preferred;
  16. private uint _maximum;
  17. public void Init()
  18. {
  19. var random = new Random();
  20. _minimum = (uint) random.Next(1, int.MaxValue);
  21. _preferred = (uint) random.Next(1, int.MaxValue);
  22. _maximum = (uint) random.Next(1, int.MaxValue);
  23. }
  24. [TestMethod]
  25. [TestCategory("KeyExchangeInitMessage")]
  26. [Owner("olegkap")]
  27. [Description("Validates KeyExchangeInitMessage message serialization.")]
  28. public void Test_KeyExchangeDhGroupExchangeRequest_GetBytes()
  29. {
  30. var request = new KeyExchangeDhGroupExchangeRequest(_minimum, _preferred, _maximum);
  31. var bytes = request.GetBytes();
  32. var expectedBytesLength = 0;
  33. expectedBytesLength += 1; // Type
  34. expectedBytesLength += 4; // Minimum
  35. expectedBytesLength += 4; // Preferred
  36. expectedBytesLength += 4; // Maximum
  37. Assert.AreEqual(expectedBytesLength, bytes.Length);
  38. var sshDataStream = new SshDataStream(bytes);
  39. Assert.AreEqual(KeyExchangeDhGroupExchangeRequest.MessageNumber, sshDataStream.ReadByte());
  40. Assert.AreEqual(_minimum, sshDataStream.ReadUInt32());
  41. Assert.AreEqual(_preferred, sshDataStream.ReadUInt32());
  42. Assert.AreEqual(_maximum, sshDataStream.ReadUInt32());
  43. Assert.IsTrue(sshDataStream.IsEndOfData);
  44. }
  45. [TestMethod]
  46. public void Load()
  47. {
  48. var request = new KeyExchangeDhGroupExchangeRequest(_minimum, _preferred, _maximum);
  49. var bytes = request.GetBytes();
  50. var target = new KeyExchangeDhGroupExchangeRequest(0, 0, 0);
  51. target.Load(bytes);
  52. Assert.AreEqual(_minimum, target.Minimum);
  53. Assert.AreEqual(_preferred, target.Preferred);
  54. Assert.AreEqual(_maximum, target.Maximum);
  55. }
  56. }
  57. }