Files
ssh.net/test/Renci.SshNet.IntegrationTests/TestBase.cs
dependabot[bot] 16d84d0395 Bump test dependencies (#1583)
* 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>
2025-02-04 21:58:59 +01:00

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));
}
}
}