Class Net::SSH::Test::Socket
In: lib/net/ssh/test/socket.rb
lib/net/ssh/test/socket.rb
Parent: StringIO

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.

Methods

getpeername   getpeername   new   new   open   open   recv   recv   write   write  

Attributes

host  [R] 
host  [R] 
port  [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.
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

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.

[Source]

    # File lib/net/ssh/test/socket.rb, line 22
22:     def initialize
23:       extend(Net::SSH::Transport::PacketStream)
24:       super "SSH-2.0-Test\r\n"
25: 
26:       @script = Script.new
27: 
28:       script.gets(:kexinit, 1, 2, 3, 4, "test", "ssh-rsa", "none", "none", "none", "none", "none", "none", "", "", false)
29:       script.sends(:kexinit)
30:       script.sends(:newkeys)
31:       script.gets(:newkeys)
32:     end

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.

[Source]

    # File lib/net/ssh/test/socket.rb, line 22
22:     def initialize
23:       extend(Net::SSH::Transport::PacketStream)
24:       super "SSH-2.0-Test\r\n"
25: 
26:       @script = Script.new
27: 
28:       script.gets(:kexinit, 1, 2, 3, 4, "test", "ssh-rsa", "none", "none", "none", "none", "none", "none", "", "", false)
29:       script.sends(:kexinit)
30:       script.sends(:newkeys)
31:       script.gets(:newkeys)
32:     end

Public Instance methods

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

[Source]

    # File lib/net/ssh/test/socket.rb, line 49
49:     def getpeername
50:       ::Socket.sockaddr_in(port, host)
51:     end

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

[Source]

    # File lib/net/ssh/test/socket.rb, line 49
49:     def getpeername
50:       ::Socket.sockaddr_in(port, host)
51:     end

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

[Source]

    # File lib/net/ssh/test/socket.rb, line 42
42:     def open(host, port)
43:       @host, @port = host, port
44:       self
45:     end

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

[Source]

    # File lib/net/ssh/test/socket.rb, line 42
42:     def open(host, port)
43:       @host, @port = host, port
44:       self
45:     end

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

[Source]

    # File lib/net/ssh/test/socket.rb, line 54
54:     def recv(n)
55:       read(n) || ""
56:     end

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

[Source]

    # File lib/net/ssh/test/socket.rb, line 54
54:     def recv(n)
55:       read(n) || ""
56:     end

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

[Source]

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

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

[Source]

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

[Validate]