| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 | using System;using System.Threading;using Microsoft.Extensions.Logging.Abstractions;using Microsoft.VisualStudio.TestTools.UnitTesting;using Moq;using Renci.SshNet.Common;using Renci.SshNet.Sftp;namespace Renci.SshNet.Tests.Classes.Sftp{    public abstract class SftpFileReaderTestBase    {        internal Mock<ISftpSession> SftpSessionMock { get; private set; }        protected abstract void SetupData();        protected void CreateMocks()        {            SftpSessionMock = new Mock<ISftpSession>(MockBehavior.Strict);            SftpSessionMock.Setup(s => s.SessionLoggerFactory).Returns(NullLoggerFactory.Instance);        }        protected abstract void SetupMocks();        protected virtual void Arrange()        {            SetupData();            CreateMocks();            SetupMocks();        }        [TestInitialize]        public void SetUp()        {            Arrange();            Act();        }        protected abstract void Act();        protected static SftpFileAttributes CreateSftpFileAttributes(long size)        {            var utcDefault = DateTime.SpecifyKind(default, DateTimeKind.Utc);            return new SftpFileAttributes(utcDefault, utcDefault, size, default, default, default, null);        }        protected static byte[] CreateByteArray(Random random, int length)        {            var chunk = new byte[length];            random.NextBytes(chunk);            return chunk;        }        protected static int WaitAny(WaitHandle[] waitHandles, int millisecondsTimeout)        {            var result = WaitHandle.WaitAny(waitHandles, millisecondsTimeout);            if (result == WaitHandle.WaitTimeout)            {                throw new SshOperationTimeoutException();            }            return result;        }    }}
 |