mirror of
https://github.com/sshnet/SSH.NET.git
synced 2026-09-11 13:39:09 +00:00
+74
-12
@@ -1,13 +1,75 @@
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using Renci.SshNet.Tests.Common;
|
||||
|
||||
namespace Renci.SshNet.Tests.Classes.Messages.Connection
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents "pty-req" type channel request information
|
||||
/// </summary>
|
||||
[TestClass]
|
||||
public class PseudoTerminalRequestInfoTest : TestBase
|
||||
{
|
||||
}
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using Renci.SshNet.Common;
|
||||
using Renci.SshNet.Messages.Connection;
|
||||
using Renci.SshNet.Tests.Common;
|
||||
|
||||
namespace Renci.SshNet.Tests.Classes.Messages.Connection
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents "pty-req" type channel request information
|
||||
/// </summary>
|
||||
[TestClass]
|
||||
public class PseudoTerminalRequestInfoTest : TestBase
|
||||
{
|
||||
private string environmentVariable;
|
||||
private uint columns;
|
||||
private uint rows;
|
||||
private uint width;
|
||||
private uint height;
|
||||
IDictionary<TerminalModes, uint> terminalModeValues;
|
||||
private byte[] _environmentVariableBytes;
|
||||
|
||||
[TestInitialize]
|
||||
public void Init()
|
||||
{
|
||||
var random = new Random();
|
||||
|
||||
environmentVariable = random.Next().ToString(CultureInfo.InvariantCulture);
|
||||
columns = (uint) random.Next(0, int.MaxValue);
|
||||
rows = (uint) random.Next(0, int.MaxValue);
|
||||
width = (uint) random.Next(0, int.MaxValue);
|
||||
height = (uint) random.Next(0, int.MaxValue);
|
||||
terminalModeValues = new Dictionary<TerminalModes, uint>();
|
||||
|
||||
|
||||
_environmentVariableBytes = Encoding.UTF8.GetBytes(environmentVariable);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void GetBytes_TerminalModeValues_Null()
|
||||
{
|
||||
var target = new PseudoTerminalRequestInfo(environmentVariable, columns, rows, width, height, null);
|
||||
|
||||
var bytes = target.GetBytes();
|
||||
|
||||
var expectedBytesLength = 1; // WantReply
|
||||
expectedBytesLength += 4; // EnvironmentVariable length
|
||||
expectedBytesLength += _environmentVariableBytes.Length; // EnvironmentVariable
|
||||
expectedBytesLength += 4; // Columns
|
||||
expectedBytesLength += 4; // Rows
|
||||
expectedBytesLength += 4; // PixelWidth
|
||||
expectedBytesLength += 4; // PixelHeight
|
||||
expectedBytesLength += 4; // Length of "encoded terminal modes"
|
||||
|
||||
Assert.AreEqual(expectedBytesLength, bytes.Length);
|
||||
|
||||
var sshDataStream = new SshDataStream(bytes);
|
||||
|
||||
Assert.AreEqual(1, sshDataStream.ReadByte()); // WantReply
|
||||
// Assert.AreEqual((uint) _environmentVariableBytes.Length, sshDataStream.ReadUInt32());
|
||||
Assert.AreEqual(environmentVariable, sshDataStream.ReadString(Encoding.UTF8));
|
||||
Assert.AreEqual(columns, sshDataStream.ReadUInt32());
|
||||
Assert.AreEqual(rows, sshDataStream.ReadUInt32());
|
||||
Assert.AreEqual(width, sshDataStream.ReadUInt32());
|
||||
Assert.AreEqual(height, sshDataStream.ReadUInt32());
|
||||
Assert.AreEqual(0, sshDataStream.ReadUInt32());
|
||||
|
||||
Assert.IsTrue(sshDataStream.IsEndOfData);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user