class Net::SSH::Test::Socket

A mock socket implementation for use in testing. It implements the minimum necessary interface for interacting with the rest of the Net::SSH::Test system.

Attributes

host[R]
port[R]
script[R]

The Net::SSH::Test::Script object in use by this socket. This is the canonical script instance that should be used for any test depending on this socket instance.

Public Class Methods

new() click to toggle source

Create a new test socket. This will also instantiate a new Net::SSH::Test::Script and seed it with the necessary events to power the initialization of the connection.

Calls superclass method
# File lib/net/ssh/test/socket.rb, line 24
def initialize
  extend(Net::SSH::Transport::PacketStream)
  super "SSH-2.0-Test\r\n"
    
  @script = Script.new
    
  script.sends(:kexinit)
  script.gets(:kexinit, 1, 2, 3, 4, "test", "ssh-rsa", "none", "none", "none", "none", "none", "none", "", "", false)
  script.sends(:newkeys)
  script.gets(:newkeys)
end

Public Instance Methods

getpeername() click to toggle source

Returns a sockaddr struct for the port and host that were used when the socket was instantiated.

# File lib/net/ssh/test/socket.rb, line 51
def getpeername
  ::Socket.sockaddr_in(port, host)
end
open(host, port, options={}) click to toggle source

Allows the socket to also mimic a socket factory, simply returning self.

# File lib/net/ssh/test/socket.rb, line 44
def open(host, port, options={})
  @host, @port = host, port
  self
end
readpartial(n) click to toggle source
# File lib/net/ssh/test/socket.rb, line 60
def readpartial(n)
  recv(n)
end
recv(n) click to toggle source

Alias to read, but never returns nil (returns an empty string instead).

# File lib/net/ssh/test/socket.rb, line 56
def recv(n)
  read(n) || ""
end
write(data) click to toggle source

This doesn't actually do anything, since we don't really care what gets written.

# File lib/net/ssh/test/socket.rb, line 38
def write(data)
  # black hole, because we don't actually care about what gets written
end