using Microsoft.Extensions.Logging; namespace Renci.SshNet.IntegrationTests.TestsFixtures { /// /// The base class for integration tests /// public abstract class IntegrationTestBase { private readonly InfrastructureFixture _infrastructureFixture; private readonly ILogger _logger; /// /// The SSH Server host name. /// public string SshServerHostName { get { return _infrastructureFixture.SshServerHostName; } } /// /// The SSH Server host name /// public ushort SshServerPort { get { return _infrastructureFixture.SshServerPort; } } /// /// The admin user that can use SSH Server. /// public SshUser AdminUser { get { return _infrastructureFixture.AdminUser; } } /// /// The normal user that can use SSH Server. /// public SshUser User { get { return _infrastructureFixture.User; } } protected IntegrationTestBase() { _infrastructureFixture = InfrastructureFixture.Instance; _logger = SshNetLoggingConfiguration.LoggerFactory.CreateLogger(GetType()); _logger.LogDebug("SSH Server: {Host}:{Port}", _infrastructureFixture.SshServerHostName, _infrastructureFixture.SshServerPort); } /// /// Creates the test file. /// /// Name of the file. /// Size in megabytes. protected void CreateTestFile(string fileName, int size) { using (var testFile = File.Create(fileName)) { var random = new Random(); for (int i = 0; i < 1024 * size; i++) { var buffer = new byte[1024]; random.NextBytes(buffer); testFile.Write(buffer, 0, buffer.Length); } } } } }