ExtensionsTest_TrimLeadingZeros.cs 2.3 KB

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