2
0

SftpFileReaderTestBase.cs 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. using System;
  2. using System.Threading;
  3. using Microsoft.VisualStudio.TestTools.UnitTesting;
  4. using Moq;
  5. using Renci.SshNet.Common;
  6. using Renci.SshNet.Sftp;
  7. namespace Renci.SshNet.Tests.Classes.Sftp
  8. {
  9. public abstract class SftpFileReaderTestBase
  10. {
  11. internal Mock<ISftpSession> SftpSessionMock { get; private set; }
  12. protected abstract void SetupData();
  13. protected void CreateMocks()
  14. {
  15. SftpSessionMock = new Mock<ISftpSession>(MockBehavior.Strict);
  16. }
  17. protected abstract void SetupMocks();
  18. protected virtual void Arrange()
  19. {
  20. SetupData();
  21. CreateMocks();
  22. SetupMocks();
  23. }
  24. [TestInitialize]
  25. public void SetUp()
  26. {
  27. Arrange();
  28. Act();
  29. }
  30. protected abstract void Act();
  31. protected static SftpFileAttributes CreateSftpFileAttributes(long size)
  32. {
  33. var utcDefault = DateTime.SpecifyKind(default, DateTimeKind.Utc);
  34. return new SftpFileAttributes(utcDefault, utcDefault, size, default, default, default, null);
  35. }
  36. protected static byte[] CreateByteArray(Random random, int length)
  37. {
  38. var chunk = new byte[length];
  39. random.NextBytes(chunk);
  40. return chunk;
  41. }
  42. protected static int WaitAny(WaitHandle[] waitHandles, int millisecondsTimeout)
  43. {
  44. var result = WaitHandle.WaitAny(waitHandles, millisecondsTimeout);
  45. if (result == WaitHandle.WaitTimeout)
  46. {
  47. throw new SshOperationTimeoutException();
  48. }
  49. return result;
  50. }
  51. }
  52. }