| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 | using System.Security.Cryptography;namespace Renci.SshNet.IntegrationTests{    public abstract class TestBase : IntegrationTestBase    {        protected static MemoryStream CreateMemoryStream(int size)        {            var memoryStream = new MemoryStream();            FillStream(memoryStream, size);            return memoryStream;        }        protected static void FillStream(Stream stream, int size)        {            var randomContent = new byte[50];            var random = new Random();            var numberOfBytesToWrite = size;            while (numberOfBytesToWrite > 0)            {                random.NextBytes(randomContent);                var numberOfCharsToWrite = Math.Min(numberOfBytesToWrite, randomContent.Length);                stream.Write(randomContent, 0, numberOfCharsToWrite);                numberOfBytesToWrite -= numberOfCharsToWrite;            }        }        protected static string CreateHash(Stream stream)        {            using MD5 md5 = MD5.Create();            var hash = md5.ComputeHash(stream);            return Encoding.ASCII.GetString(hash);        }        protected static string CreateHash(byte[] buffer)        {            using (var ms = new MemoryStream(buffer))            {                return CreateHash(ms);            }        }        protected static string CreateFileHash(string path)        {            using (var fs = File.OpenRead(path))            {                return CreateHash(fs);            }        }        protected static string CreateTempFile(int size)        {            var file = Path.GetTempFileName();            CreateFile(file, size);            return file;        }        protected static void CreateFile(string fileName, int size)        {            using (var fs = File.OpenWrite(fileName))            {                FillStream(fs, size);            }        }        internal static Stream GetData(string name)        {            string resourceName = $"Renci.SshNet.IntegrationTests.{name}";            return typeof(TestBase).Assembly.GetManifestResourceStream(resourceName)                ?? throw new ArgumentException($"Resource '{resourceName}' not found in assembly '{typeof(TestBase).Assembly.FullName}'.", nameof(name));        }    }}
 |