2004-08-08 17:35:11 -04:00
|
|
|
# $Id$
|
2003-09-17 05:52:50 -04:00
|
|
|
|
|
|
|
module Test
|
|
|
|
module Unit
|
2011-02-05 22:13:08 -05:00
|
|
|
module FileAssertions
|
2003-09-17 05:52:50 -04:00
|
|
|
|
2008-09-23 17:39:21 -04:00
|
|
|
def _wrap_assertion
|
|
|
|
yield
|
|
|
|
end
|
|
|
|
|
2011-02-04 13:35:07 -05:00
|
|
|
def assert_same_file(from, to, message=nil)
|
2003-09-17 05:52:50 -04:00
|
|
|
_wrap_assertion {
|
2011-02-04 13:35:07 -05:00
|
|
|
assert_block("file #{from} != #{to}#{message&&': '}#{message||''}") {
|
2003-09-17 05:52:50 -04:00
|
|
|
File.read(from) == File.read(to)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
end
|
|
|
|
|
2011-02-04 13:35:07 -05:00
|
|
|
def assert_same_entry(from, to, message=nil)
|
2005-01-26 10:03:37 -05:00
|
|
|
a = File.stat(from)
|
|
|
|
b = File.stat(to)
|
2011-02-04 13:35:07 -05:00
|
|
|
msg = "#{message&&': '}#{message||''}"
|
|
|
|
assert_equal a.mode, b.mode, "mode #{a.mode} != #{b.mode}#{msg}"
|
2005-01-26 10:03:37 -05:00
|
|
|
#assert_equal a.atime, b.atime
|
2011-02-04 13:35:07 -05:00
|
|
|
assert_equal_timestamp a.mtime, b.mtime, "mtime #{a.mtime} != #{b.mtime}#{msg}"
|
|
|
|
assert_equal a.uid, b.uid, "uid #{a.uid} != #{b.uid}#{msg}"
|
|
|
|
assert_equal a.gid, b.gid, "gid #{a.gid} != #{b.gid}#{msg}"
|
2004-08-08 17:35:11 -04:00
|
|
|
end
|
|
|
|
|
2011-02-04 13:35:07 -05:00
|
|
|
def assert_file_exist(path, message=nil)
|
2003-09-17 05:52:50 -04:00
|
|
|
_wrap_assertion {
|
2011-02-04 13:35:07 -05:00
|
|
|
assert_block("file not exist: #{path}#{message&&': '}#{message||''}") {
|
2003-11-18 00:09:20 -05:00
|
|
|
File.exist?(path)
|
2003-09-17 05:52:50 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
end
|
|
|
|
|
2011-02-04 13:35:07 -05:00
|
|
|
def assert_file_not_exist(path, message=nil)
|
2003-09-17 05:52:50 -04:00
|
|
|
_wrap_assertion {
|
2011-02-04 13:35:07 -05:00
|
|
|
assert_block("file not exist: #{path}#{message&&': '}#{message||''}") {
|
2003-11-18 00:09:20 -05:00
|
|
|
not File.exist?(path)
|
2003-09-17 05:52:50 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
end
|
|
|
|
|
2011-02-04 13:35:07 -05:00
|
|
|
def assert_directory(path, message=nil)
|
2003-09-17 05:52:50 -04:00
|
|
|
_wrap_assertion {
|
2011-02-04 13:35:07 -05:00
|
|
|
assert_block("is not directory: #{path}#{message&&': '}#{message||''}") {
|
2003-11-18 00:09:20 -05:00
|
|
|
File.directory?(path)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
end
|
|
|
|
|
2011-02-04 13:35:07 -05:00
|
|
|
def assert_symlink(path, message=nil)
|
2003-11-18 00:09:20 -05:00
|
|
|
_wrap_assertion {
|
2011-02-04 13:35:07 -05:00
|
|
|
assert_block("is not a symlink: #{path}#{message&&': '}#{message||''}") {
|
2003-11-18 00:09:20 -05:00
|
|
|
File.symlink?(path)
|
2003-09-17 05:52:50 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
end
|
|
|
|
|
2004-08-08 17:35:11 -04:00
|
|
|
def assert_not_symlink(path)
|
|
|
|
_wrap_assertion {
|
2011-02-04 13:35:07 -05:00
|
|
|
assert_block("is a symlink: #{path}#{message&&': '}#{message||''}") {
|
2004-08-08 17:35:11 -04:00
|
|
|
not File.symlink?(path)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
end
|
|
|
|
|
2007-11-19 10:57:52 -05:00
|
|
|
def assert_equal_time(expected, actual, message=nil)
|
|
|
|
_wrap_assertion {
|
|
|
|
expected_str = expected.to_s
|
|
|
|
actual_str = actual.to_s
|
|
|
|
if expected_str == actual_str
|
|
|
|
expected_str << " (nsec=#{expected.nsec})"
|
|
|
|
actual_str << " (nsec=#{actual.nsec})"
|
|
|
|
end
|
2007-11-19 11:19:12 -05:00
|
|
|
full_message = build_message(message, <<EOT)
|
|
|
|
<#{expected_str}> expected but was
|
|
|
|
<#{actual_str}>.
|
2007-11-19 10:57:52 -05:00
|
|
|
EOT
|
|
|
|
assert_block(full_message) { expected == actual }
|
|
|
|
}
|
|
|
|
end
|
|
|
|
|
2007-11-21 02:40:36 -05:00
|
|
|
def assert_equal_timestamp(expected, actual, message=nil)
|
|
|
|
_wrap_assertion {
|
|
|
|
expected_str = expected.to_s
|
|
|
|
actual_str = actual.to_s
|
|
|
|
if expected_str == actual_str
|
|
|
|
expected_str << " (nsec=#{expected.nsec})"
|
|
|
|
actual_str << " (nsec=#{actual.nsec})"
|
|
|
|
end
|
|
|
|
full_message = build_message(message, <<EOT)
|
|
|
|
<#{expected_str}> expected but was
|
|
|
|
<#{actual_str}>.
|
|
|
|
EOT
|
2009-03-05 22:56:38 -05:00
|
|
|
# subsecond timestamp is not portable.
|
2007-11-21 02:40:36 -05:00
|
|
|
assert_block(full_message) { expected.tv_sec == actual.tv_sec }
|
|
|
|
}
|
|
|
|
end
|
|
|
|
|
2003-09-17 05:52:50 -04:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|