2
0

ExtensionsTest_Concat.cs 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  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_Concat
  10. {
  11. private Random _random;
  12. [TestInitialize]
  13. public void Init()
  14. {
  15. _random = new Random();
  16. }
  17. [TestMethod]
  18. public void ShouldReturnSecondWhenFirstIsEmpty()
  19. {
  20. var first = Array.Empty<byte>();
  21. var second = CreateBuffer(16);
  22. var actual = Extensions.Concat(first, second);
  23. Assert.IsNotNull(actual);
  24. Assert.AreEqual(second, actual);
  25. }
  26. [TestMethod]
  27. public void ShouldReturnSecondWhenFirstIsNull()
  28. {
  29. const byte[] first = null;
  30. var second = CreateBuffer(16);
  31. var actual = Extensions.Concat(first, second);
  32. Assert.IsNotNull(actual);
  33. Assert.AreEqual(second, actual);
  34. }
  35. [TestMethod]
  36. public void ShouldReturnFirstWhenSecondIsEmpty()
  37. {
  38. var first = CreateBuffer(16);
  39. var second = Array.Empty<byte>();
  40. var actual = Extensions.Concat(first, second);
  41. Assert.IsNotNull(actual);
  42. Assert.AreEqual(first, actual);
  43. }
  44. [TestMethod]
  45. public void ShouldReturnFirstWhenSecondIsNull()
  46. {
  47. var first = CreateBuffer(16);
  48. const byte[] second = null;
  49. var actual = Extensions.Concat(first, second);
  50. Assert.IsNotNull(actual);
  51. Assert.AreEqual(first, actual);
  52. }
  53. [TestMethod]
  54. public void ShouldReturnNullWhenFirstAndSecondAreNull()
  55. {
  56. const byte[] first = null;
  57. const byte[] second = null;
  58. var actual = Extensions.Concat(first, second);
  59. Assert.IsNull(actual);
  60. }
  61. [TestMethod]
  62. public void ShouldConcatSecondToFirstWhenBothAreNotEmpty()
  63. {
  64. var first = CreateBuffer(4);
  65. var second = CreateBuffer(2);
  66. var actual = Extensions.Concat(first, second);
  67. Assert.IsNotNull(actual);
  68. Assert.AreEqual(first.Length + second.Length, actual.Length);
  69. Assert.AreEqual(first[0], actual[0]);
  70. Assert.AreEqual(first[1], actual[1]);
  71. Assert.AreEqual(first[2], actual[2]);
  72. Assert.AreEqual(first[3], actual[3]);
  73. Assert.AreEqual(second[0], actual[4]);
  74. Assert.AreEqual(second[1], actual[5]);
  75. }
  76. private byte[] CreateBuffer(int length)
  77. {
  78. var buffer = new byte[length];
  79. _random.NextBytes(buffer);
  80. return buffer;
  81. }
  82. }
  83. }