using System; using Microsoft.VisualStudio.TestTools.UnitTesting; using Moq; using Renci.SshNet.Sftp; namespace Renci.SshNet.Tests.Classes.Sftp { public abstract class SftpFileStreamTestBase { internal Mock SftpSessionMock; protected MockSequence MockSequence; protected virtual void Arrange() { SetupData(); CreateMocks(); SetupMocks(); } protected virtual void SetupData() { MockSequence = new MockSequence(); } protected abstract void SetupMocks(); private void CreateMocks() { SftpSessionMock = new Mock(MockBehavior.Strict); } [TestInitialize] public void SetUp() { Arrange(); Act(); } protected abstract void Act(); protected byte[] GenerateRandom(int length) { return GenerateRandom(length, new Random()); } protected byte[] GenerateRandom(int length, Random random) { var buffer = new byte[length]; random.NextBytes(buffer); return buffer; } protected byte[] GenerateRandom(uint length) { return GenerateRandom(length, new Random()); } protected byte[] GenerateRandom(uint length, Random random) { var buffer = new byte[length]; random.NextBytes(buffer); return buffer; } } }