CryptoAbstraction_GenerateRandom.cs 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. using System;
  2. using System.Linq;
  3. using Renci.SshNet.Abstractions;
  4. using Microsoft.VisualStudio.TestTools.UnitTesting;
  5. namespace Renci.SshNet.Tests.Abstractions
  6. {
  7. [TestClass]
  8. public class CryptoAbstraction_GenerateRandom
  9. {
  10. [TestMethod]
  11. public void ShouldThrowArgumentNullExceptionWhenDataIsNull()
  12. {
  13. const byte[] data = null;
  14. try
  15. {
  16. CryptoAbstraction.GenerateRandom(data);
  17. Assert.Fail();
  18. }
  19. catch (ArgumentNullException ex)
  20. {
  21. Assert.IsNull(ex.InnerException);
  22. Assert.AreEqual("data", ex.ParamName);
  23. }
  24. }
  25. [TestMethod]
  26. public void ShouldPerformNoOpWhenDataIsZeroLength()
  27. {
  28. var data = new byte[0];
  29. CryptoAbstraction.GenerateRandom(data);
  30. }
  31. [TestMethod]
  32. public void ShouldGenerateRandomSequenceOfValues()
  33. {
  34. var dataLength = new Random().Next(1, 100);
  35. var dataA = new byte[dataLength];
  36. var dataB = new byte[dataLength];
  37. CryptoAbstraction.GenerateRandom(dataA);
  38. CryptoAbstraction.GenerateRandom(dataB);
  39. Assert.IsFalse(dataA.SequenceEqual(dataB));
  40. }
  41. }
  42. }