assert('Dir') do
assert_equal(Class, Dir.class)
end
assert('DirTest.setup') do
assert_nothing_raised{DirTest.setup}
end
assert('Dir.chdir') do
assert_equal 0, Dir.chdir(DirTest.sandbox)
end
assert('Dir.entries') do
a = Dir.entries(DirTest.sandbox)
assert_true a.include?("a")
assert_true a.include?("b")
end
assert('Dir.exist?') do
assert_true Dir.exist?(DirTest.sandbox)
assert_false Dir.exist?(DirTest.sandbox + "/nosuchdir")
end
assert('Dir.foreach') do
a = []
Dir.foreach(DirTest.sandbox) { |s| a << s }
assert_true a.include?("a")
assert_true a.include?("b")
end
assert('Dir.getwd') do
s = Dir.getwd
assert_true s.kind_of? String
end
assert('Dir.mkdir') do
m1 = DirTest.sandbox + "/mkdir1"
m2 = DirTest.sandbox + "/mkdir2"
assert_equal 0, Dir.mkdir(m1)
assert_equal 0, Dir.mkdir(m2, 0765)
end
assert('Dir.delete') do
s = DirTest.sandbox + "/delete"
Dir.mkdir(s)
assert_true Dir.exist?(s)
Dir.delete(s)
assert_false Dir.exist?(s)
end
assert('Dir.open') do
a = []
Dir.open(DirTest.sandbox) { |d|
d.each_child { |s| a << s }
}
assert_true a.include?("a")
assert_true a.include?("b")
end
assert('Dir#initialize and Dir#close') do
d = Dir.new(".")
assert_true d.instance_of?(Dir)
assert_nil d.close
end
assert('Dir#close') do
d = Dir.new(".")
assert_nothing_raised{d.close}
end
assert('Dir#each_child') do
a = []
d = Dir.open(DirTest.sandbox)
d.each_child { |s| a << s }
d.close
assert_true a.include?("a")
assert_true a.include?("b")
end
assert('Dir#read') do
a = []
d = Dir.open(DirTest.sandbox)
while s = d.read
a << s
end
d.close
assert_true a.include?("a")
assert_true a.include?("b")
end
assert('Dir#rewind') do
d = Dir.open(DirTest.sandbox)
while d.read; end
assert_equal d, d.rewind
a = []
while s = d.read
a << s
end
d.close
assert_true a.include? "a"
assert_true a.include? "b"
end
assert('Dir#tell') do
n = nil
begin
Dir.open(DirTest.sandbox) { |d|
n = d.tell
}
assert_true n.is_a? Integer
rescue NotImplementedError => e
skip e.message
end
end
assert('Dir#seek') do
d1 = Dir.open(DirTest.sandbox)
d1.read
begin
n = d1.tell
d1.read
d2 = d1.seek(n)
assert_equal d1, d2
rescue NotImplementedError => e
skip e.message
end
end
assert('DirTest.teardown') do
assert_nothing_raised{DirTest.teardown}
end