JezK
Edit File: test_request.rb
require 'common' class RequestTest < Net::SFTP::TestCase def test_property_setter_should_symbolize_key request = Net::SFTP::Request.new(stub("session"), :open, 1) request["key"] = :value assert_equal :value, request['key'] assert_equal :value, request[:key] assert_equal :value, request.properties[:key] assert_nil request.properties['key'] end def test_pending_should_query_pending_requests_of_session session = stub("session", :pending_requests => {1 => true}) request = Net::SFTP::Request.new(session, :open, 1) assert request.pending? request = Net::SFTP::Request.new(session, :open, 2) assert !request.pending? end def test_wait_should_run_loop_while_pending_and_return_self session = MockSession.new request = Net::SFTP::Request.new(session, :open, 1) request.expects(:pending?).times(4).returns(true, true, true, false) assert_equal 0, session.loops assert_equal request, request.wait assert_equal 4, session.loops end def test_respond_to_should_set_response_property packet = stub("packet", :type => 1) session = stub("session", :protocol => mock("protocol")) session.protocol.expects(:parse).with(packet).returns({}) request = Net::SFTP::Request.new(session, :open, 1) assert_nil request.response request.respond_to(packet) assert_instance_of Net::SFTP::Response, request.response end def test_respond_to_with_callback_should_invoke_callback packet = stub("packet", :type => 1) session = stub("session", :protocol => mock("protocol")) session.protocol.expects(:parse).with(packet).returns({}) called = false request = Net::SFTP::Request.new(session, :open, 1) do |response| called = true assert_equal request.response, response end request.respond_to(packet) assert called end private class MockSession attr_reader :loops def initialize @loops = 0 end def loop while true @loops += 1 break unless yield end end end end