SftpFileStreamTestBase.cs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. using System;
  2. using Microsoft.VisualStudio.TestTools.UnitTesting;
  3. using Moq;
  4. using Renci.SshNet.Sftp;
  5. namespace Renci.SshNet.Tests.Classes.Sftp
  6. {
  7. public abstract class SftpFileStreamTestBase
  8. {
  9. internal Mock<ISftpSession> SftpSessionMock;
  10. protected MockSequence MockSequence;
  11. protected virtual void Arrange()
  12. {
  13. SetupData();
  14. CreateMocks();
  15. SetupMocks();
  16. }
  17. protected virtual void SetupData()
  18. {
  19. MockSequence = new MockSequence();
  20. }
  21. protected abstract void SetupMocks();
  22. private void CreateMocks()
  23. {
  24. SftpSessionMock = new Mock<ISftpSession>(MockBehavior.Strict);
  25. }
  26. [TestInitialize]
  27. public void SetUp()
  28. {
  29. Arrange();
  30. Act();
  31. }
  32. protected abstract void Act();
  33. protected byte[] GenerateRandom(int length)
  34. {
  35. return GenerateRandom(length, new Random());
  36. }
  37. protected byte[] GenerateRandom(int length, Random random)
  38. {
  39. var buffer = new byte[length];
  40. random.NextBytes(buffer);
  41. return buffer;
  42. }
  43. protected byte[] GenerateRandom(uint length)
  44. {
  45. return GenerateRandom(length, new Random());
  46. }
  47. protected byte[] GenerateRandom(uint length, Random random)
  48. {
  49. var buffer = new byte[length];
  50. random.NextBytes(buffer);
  51. return buffer;
  52. }
  53. }
  54. }