ExtensionsTest_TrimLeadingZeros.cs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. using System;
  2. using Microsoft.VisualStudio.TestTools.UnitTesting;
  3. using Renci.SshNet.Common;
  4. namespace Renci.SshNet.Tests.Classes.Common
  5. {
  6. [TestClass]
  7. public class ExtensionsTest_TrimLeadingZeros
  8. {
  9. [TestMethod]
  10. public void ShouldThrowArgumentNullExceptionWhenValueIsNull()
  11. {
  12. const byte[] value = null;
  13. try
  14. {
  15. Extensions.TrimLeadingZeros(value);
  16. Assert.Fail();
  17. }
  18. catch (ArgumentNullException ex)
  19. {
  20. Assert.IsNull(ex.InnerException);
  21. Assert.AreEqual("value", ex.ParamName);
  22. }
  23. }
  24. [TestMethod]
  25. public void ShouldRemoveAllLeadingZeros()
  26. {
  27. byte[] value = {0x00, 0x00, 0x0a, 0x0d};
  28. var actual = Extensions.TrimLeadingZeros(value);
  29. Assert.IsNotNull(actual);
  30. Assert.AreEqual(2, actual.Length);
  31. Assert.AreEqual(0x0a, actual[0]);
  32. Assert.AreEqual(0x0d, actual[1]);
  33. }
  34. [TestMethod]
  35. public void ShouldOnlyRemoveLeadingZeros()
  36. {
  37. byte[] value = { 0x00, 0x0a, 0x00, 0x0d, 0x00 };
  38. var actual = Extensions.TrimLeadingZeros(value);
  39. Assert.IsNotNull(actual);
  40. Assert.AreEqual(4, actual.Length);
  41. Assert.AreEqual(0x0a, actual[0]);
  42. Assert.AreEqual(0x00, actual[1]);
  43. Assert.AreEqual(0x0d, actual[2]);
  44. Assert.AreEqual(0x00, actual[3]);
  45. }
  46. [TestMethod]
  47. public void ShouldReturnOriginalEmptyByteArrayWhenValueHasNoLeadingZeros()
  48. {
  49. byte[] value = { 0x0a, 0x00, 0x0d };
  50. var actual = Extensions.TrimLeadingZeros(value);
  51. Assert.IsNotNull(actual);
  52. Assert.AreEqual(3, actual.Length);
  53. Assert.AreEqual(0x0a, actual[0]);
  54. Assert.AreEqual(0x00, actual[1]);
  55. Assert.AreEqual(0x0d, actual[2]);
  56. }
  57. [TestMethod]
  58. public void ShouldReturnEmptyByteArrayWhenValueIsEmpty()
  59. {
  60. byte[] value = {};
  61. var actual = Extensions.TrimLeadingZeros(value);
  62. Assert.IsNotNull(actual);
  63. Assert.AreEqual(0, actual.Length);
  64. }
  65. }
  66. }