2
0

AbstractionsTest.cs 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. using Renci.SshNet.Abstractions;
  2. using Microsoft.VisualStudio.TestTools.UnitTesting;
  3. using System;
  4. using System.Threading;
  5. namespace Renci.SshNet.Tests.Classes
  6. {
  7. [TestClass]
  8. public class AbstractionsTest
  9. {
  10. [TestMethod]
  11. public void SocketAbstraction_CanWrite_ShouldReturnFalseWhenSocketIsNull()
  12. {
  13. Assert.IsFalse(SocketAbstraction.CanWrite(null));
  14. }
  15. [TestMethod]
  16. public void CryptoAbstraction_GenerateRandom_ShouldPerformNoOpWhenDataIsZeroLength()
  17. {
  18. Assert.AreEqual(0, CryptoAbstraction.GenerateRandom(0).Length);
  19. }
  20. [TestMethod]
  21. public void CryptoAbstraction_GenerateRandom_ShouldGenerateRandomSequenceOfValues()
  22. {
  23. var dataLength = new Random().Next(1, 100);
  24. var dataA = CryptoAbstraction.GenerateRandom(dataLength);
  25. var dataB = CryptoAbstraction.GenerateRandom(dataLength);
  26. Assert.AreEqual(dataLength, dataA.Length);
  27. Assert.AreEqual(dataLength, dataB.Length);
  28. CollectionAssert.AreNotEqual(dataA, dataB);
  29. }
  30. [TestMethod]
  31. public void ThreadAbstraction_ExecuteThread_ShouldThrowArgumentNullExceptionWhenActionIsNull()
  32. {
  33. var ex = Assert.ThrowsException<ArgumentNullException>(() => ThreadAbstraction.ExecuteThread(null));
  34. Assert.IsNull(ex.InnerException);
  35. Assert.AreEqual("action", ex.ParamName);
  36. }
  37. [TestMethod]
  38. public void ThreadAbstraction_ExecuteThread_ShouldExecuteActionOnSeparateThread()
  39. {
  40. int threadId = 0;
  41. using var waitHandle = new ManualResetEventSlim();
  42. ThreadAbstraction.ExecuteThread(() =>
  43. {
  44. threadId = Environment.CurrentManagedThreadId;
  45. waitHandle.Set();
  46. });
  47. Assert.IsTrue(waitHandle.Wait(1000));
  48. Assert.AreNotEqual(0, threadId);
  49. Assert.AreNotEqual(Environment.CurrentManagedThreadId, threadId);
  50. }
  51. }
  52. }