< Summary

Information
Class: Renci.SshNet.Messages.Connection.SubsystemRequestInfo
Assembly: Renci.SshNet
File(s): \home\appveyor\projects\ssh-net\src\Renci.SshNet\Messages\Connection\ChannelRequest\SubsystemRequestInfo.cs
Line coverage
80%
Covered lines: 20
Uncovered lines: 5
Coverable lines: 25
Total lines: 87
Line coverage: 80%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Cyclomatic complexity Line coverage
get_RequestName()100%1100%
get_SubsystemName()100%10%
set_SubsystemName(...)100%1100%
get_BufferCapacity()100%1100%
.ctor()100%1100%
.ctor(...)100%1100%
LoadData()100%10%
SaveData()100%1100%

File(s)

\home\appveyor\projects\ssh-net\src\Renci.SshNet\Messages\Connection\ChannelRequest\SubsystemRequestInfo.cs

#LineLine coverage
 1namespace Renci.SshNet.Messages.Connection
 2{
 3    /// <summary>
 4    /// Represents "subsystem" type channel request information.
 5    /// </summary>
 6    internal sealed class SubsystemRequestInfo : RequestInfo
 7    {
 8        private byte[] _subsystemName;
 9
 10        /// <summary>
 11        /// Channel request name.
 12        /// </summary>
 13        public const string Name = "subsystem";
 14
 15        /// <summary>
 16        /// Gets the name of the request.
 17        /// </summary>
 18        /// <value>
 19        /// The name of the request.
 20        /// </value>
 21        public override string RequestName
 22        {
 185423            get { return Name; }
 24        }
 25
 26        /// <summary>
 27        /// Gets the name of the subsystem.
 28        /// </summary>
 29        /// <value>
 30        /// The name of the subsystem.
 31        /// </value>
 32        public string SubsystemName
 33        {
 034            get { return Ascii.GetString(_subsystemName, 0, _subsystemName.Length); }
 185435            private set { _subsystemName = Ascii.GetBytes(value); }
 36        }
 37
 38        protected override int BufferCapacity
 39        {
 40            get
 61841            {
 61842                var capacity = base.BufferCapacity;
 61843                capacity += 4; // SubsystemName length
 61844                capacity += _subsystemName.Length; // SubsystemName
 61845                return capacity;
 61846            }
 47        }
 48
 49        /// <summary>
 50        /// Initializes a new instance of the <see cref="SubsystemRequestInfo"/> class.
 51        /// </summary>
 342252        public SubsystemRequestInfo()
 342253        {
 342254            WantReply = true;
 342255        }
 56
 57        /// <summary>
 58        /// Initializes a new instance of the <see cref="SubsystemRequestInfo"/> class.
 59        /// </summary>
 60        /// <param name="subsystem">The subsystem.</param>
 61        public SubsystemRequestInfo(string subsystem)
 61862            : this()
 61863        {
 61864            SubsystemName = subsystem;
 61865        }
 66
 67        /// <summary>
 68        /// Called when type specific data need to be loaded.
 69        /// </summary>
 70        protected override void LoadData()
 071        {
 072            base.LoadData();
 73
 074            _subsystemName = ReadBinary();
 075        }
 76
 77        /// <summary>
 78        /// Called when type specific data need to be saved.
 79        /// </summary>
 80        protected override void SaveData()
 61881        {
 61882            base.SaveData();
 83
 61884            WriteBinaryString(_subsystemName);
 61885        }
 86    }
 87}