mirror of
https://github.com/sshnet/SSH.NET.git
synced 2026-09-10 09:15:47 +00:00
16d84d0395
* Bump coverlet.collector from 6.0.2 to 6.0.4 Bumps [coverlet.collector](https://github.com/coverlet-coverage/coverlet) from 6.0.2 to 6.0.4. - [Release notes](https://github.com/coverlet-coverage/coverlet/releases) - [Commits](https://github.com/coverlet-coverage/coverlet/compare/v6.0.2...v6.0.4) --- updated-dependencies: - dependency-name: coverlet.collector dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> * update test deps * update test deps * some fixes * group dependencies * analyzer fixes * just group them all together * more cleanup * silent analyzers -> suggestion * restore constant --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Robert Hague <rh@johnstreetcapital.com> Co-authored-by: Rob Hague <rob.hague00@gmail.com>
78 lines
2.3 KiB
C#
78 lines
2.3 KiB
C#
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));
|
|
}
|
|
}
|
|
}
|