2009-12-04 09:38:44 +00:00
|
|
|
require "test_helper"
|
2009-09-30 05:23:26 +00:00
|
|
|
|
|
|
|
class FileStatTest < Test::Unit::TestCase
|
|
|
|
include FakeFS
|
|
|
|
|
|
|
|
def setup
|
|
|
|
FileSystem.clear
|
|
|
|
end
|
|
|
|
|
|
|
|
def touch(*args)
|
|
|
|
FileUtils.touch(*args)
|
|
|
|
end
|
|
|
|
|
|
|
|
def ln_s(*args)
|
|
|
|
FileUtils.ln_s(*args)
|
|
|
|
end
|
|
|
|
|
|
|
|
def mkdir(*args)
|
|
|
|
Dir.mkdir(*args)
|
|
|
|
end
|
|
|
|
|
2009-10-01 05:39:07 +00:00
|
|
|
def ln(*args)
|
|
|
|
File.link(*args)
|
|
|
|
end
|
|
|
|
|
2009-09-30 05:23:26 +00:00
|
|
|
def test_file_stat_init_with_non_existant_file
|
|
|
|
assert_raises(Errno::ENOENT) do
|
|
|
|
File::Stat.new("/foo")
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_symlink_should_be_true_when_symlink
|
|
|
|
touch("/foo")
|
|
|
|
ln_s("/foo", "/bar")
|
|
|
|
|
|
|
|
assert File::Stat.new("/bar").symlink?
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_symlink_should_be_false_when_not_a_symlink
|
|
|
|
FileUtils.touch("/foo")
|
|
|
|
|
|
|
|
assert !File::Stat.new("/foo").symlink?
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_should_return_false_for_directory_when_not_a_directory
|
|
|
|
FileUtils.touch("/foo")
|
|
|
|
|
|
|
|
assert !File::Stat.new("/foo").directory?
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_should_return_true_for_directory_when_a_directory
|
|
|
|
mkdir "/foo"
|
|
|
|
|
|
|
|
assert File::Stat.new("/foo").directory?
|
|
|
|
end
|
2009-10-01 05:39:07 +00:00
|
|
|
|
|
|
|
def test_one_file_has_hard_link
|
|
|
|
touch "testfile"
|
|
|
|
assert_equal 1, File.stat("testfile").nlink
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_two_hard_links_show_nlinks_as_two
|
|
|
|
touch "testfile"
|
|
|
|
ln "testfile", "testfile.bak"
|
|
|
|
|
|
|
|
assert_equal 2, File.stat("testfile").nlink
|
|
|
|
end
|
2009-11-27 12:48:03 +00:00
|
|
|
|
|
|
|
def test_file_size
|
|
|
|
File.open('testfile', 'w') { |f| f << 'test' }
|
|
|
|
assert_equal 4, File.stat('testfile').size
|
|
|
|
end
|
2009-09-30 05:23:26 +00:00
|
|
|
end
|