File: test_base.rb

package info (click to toggle)
ruby-net-sftp 1%3A4.0.0-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 684 kB
  • sloc: ruby: 5,136; makefile: 6
file content (74 lines) | stat: -rw-r--r-- 2,599 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
require 'common'
require 'protocol/03/test_base'

class Protocol::V04::TestBase < Protocol::V03::TestBase
  def test_version
    assert_equal 4, @base.version
  end

  def test_parse_attrs_packet_should_use_correct_attributes_class
    Net::SFTP::Protocol::V04::Attributes.expects(:from_buffer).with(:packet).returns(:result)
    assert_equal({ :attrs => :result }, @base.parse_attrs_packet(:packet))
  end

  def test_parse_name_packet_should_use_correct_name_class
    packet = Net::SSH::Buffer.from(:long, 2,
      :string, "name1", :long, 0x4, :byte, 1, :long, 0755,
      :string, "name2", :long, 0x4, :byte, 1, :long, 0550)
    names = @base.parse_name_packet(packet)[:names]

    refute_nil names
    assert_equal 2, names.length
    assert_instance_of Net::SFTP::Protocol::V04::Name, names.first

    assert_equal "name1", names.first.name
    assert_equal 0755, names.first.attributes.permissions

    assert_equal "name2", names.last.name
    assert_equal 0550, names.last.attributes.permissions
  end

  undef test_fstat_should_ignore_flags_parameter
  undef test_lstat_should_ignore_flags_parameter
  undef test_stat_should_ignore_flags_parameter

  def test_lstat_should_send_lstat_packet
    @session.expects(:send_packet).with(FXP_LSTAT, :long, 0, :string, "/path/to/file", :long, 0x800001fd)
    assert_equal 0, @base.lstat("/path/to/file")
  end

  def test_lstat_with_custom_flags_should_send_lstat_packet_with_given_flags
    @session.expects(:send_packet).with(FXP_LSTAT, :long, 0, :string, "/path/to/file", :long, 1234)
    assert_equal 0, @base.lstat("/path/to/file", 1234)
  end

  def test_fstat_should_send_fstat_packet
    @session.expects(:send_packet).with(FXP_FSTAT, :long, 0, :string, "handle", :long, 0x800001fd)
    assert_equal 0, @base.fstat("handle")
  end

  def test_fstat_with_custom_flags_should_send_fstat_packet_with_given_flags
    @session.expects(:send_packet).with(FXP_FSTAT, :long, 0, :string, "handle", :long, 1234)
    assert_equal 0, @base.fstat("handle", 1234)
  end

  def test_stat_should_send_stat_packet
    @session.expects(:send_packet).with(FXP_STAT, :long, 0, :string, "/path/to/file", :long, 0x800001fd)
    assert_equal 0, @base.stat("/path/to/file")
  end

  def test_stat_with_custom_flags_should_send_stat_packet_with_given_flags
    @session.expects(:send_packet).with(FXP_STAT, :long, 0, :string, "/path/to/file", :long, 1234)
    assert_equal 0, @base.stat("/path/to/file", 1234)
  end

  private

    def driver
      Net::SFTP::Protocol::V04::Base
    end

    def attributes
      Net::SFTP::Protocol::V04::Attributes
    end
end