KeyExchangeDhGroupExchangeRequestTest.cs 2.3 KB

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