Files
EWF/library/server/wsf/tests/src/test_wsf_file_utilities.e
2014-06-23 16:05:20 +02:00

150 lines
3.3 KiB
Plaintext

note
description: "Summary description for {TEST_WSF_FILE_UTILITIES}."
date: "$Date$"
revision: "$Revision$"
class
TEST_WSF_FILE_UTILITIES
inherit
EQA_TEST_SET
SHARED_EXECUTION_ENVIRONMENT
undefine
default_create, copy
end
feature -- Tests
test_temporary_file_0
do
test_temporary_file (0)
end
test_temporary_file_1_ns
do
test_temporary_file (1)
end
test_temporary_file_100_ns
do
test_temporary_file (100)
end
test_temporary_file_1_s
do
test_temporary_file (1_000_000_000)
end
new_temp_prefix: STRING
local
dt: DATE_TIME
do
create dt.make_now_utc
Result := "TEMP_"
Result.append_integer (dt.date.ordered_compact_date)
Result.append_character ('_')
Result.append_integer (dt.time.compact_time)
Result.append_character ('.')
-- Result.append_integer (dt.time.milli_second)
Result.append_integer ((dt.time.fractional_second * 1_000_000_000).truncated_to_integer)
end
test_temporary_file (a_delay: INTEGER_64)
local
f: detachable FILE
f1,f2: detachable FILE
fac: WSF_FILE_UTILITIES [RAW_FILE]
d: DIRECTORY
logs: STRING_32
l_prefix: STRING
do
create logs.make (0)
create d.make_with_path ((create {PATH}.make_current).extended ("_tmp_"))
d.recursive_create_dir
create fac
l_prefix := new_temp_prefix
f := fac.new_temporary_file (d, l_prefix, "l'été est là!")
if f /= Void then
create {RAW_FILE}f1.make_with_path (f.path)
f1.open_write
f1.close
logs.append ("f="); logs.append (f.path.name); logs.append ("%N")
if a_delay > 0 then
-- Wait `a_delay' in nanoseconds.
execution_environment.sleep (a_delay)
l_prefix := new_temp_prefix
end
f1 := fac.new_temporary_file (d, l_prefix, "l'été est là!")
if a_delay > 0 then
-- Wait `a_delay' in nanoseconds.
execution_environment.sleep (a_delay)
l_prefix := new_temp_prefix
end
f2 := fac.new_temporary_file (d, l_prefix, "l'été est là!")
if f1 /= Void then
logs.append ("f1="); logs.append (f1.path.name); logs.append ("%N")
f.put_string ("test")
f1.put_string ("blabla")
f1.close
else
assert ("able to create new file f1", False)
end
if f2 /= Void then
logs.append ("f2="); logs.append (f2.path.name); logs.append ("%N")
f.put_string ("TEST")
f2.put_string ("BLABLA")
f2.close
else
assert ("able to create new file f1", False)
end
assert ("f1 /= f2", (f1 /= Void and f2 /= Void) and then (not f1.path.is_same_file_as (f2.path)))
f.close
assert ("expected content for f", content (f).same_string ("testTEST"))
assert ("expected content for f1", content (f1).same_string ("blabla"))
assert ("expected content for f2", content (f2).same_string ("BLABLA"))
else
assert ("able to create new file f", False)
end
-- Cleaning
if f /= Void then
f.delete
end
if f1 /= Void then
f1.delete
end
if f2 /= Void then
f2.delete
end
end
content (f: detachable FILE): STRING
do
create Result.make (0)
if f /= Void then
from
f.open_read
assert (f.path.utf_8_name + " is opened", f.is_open_read)
until
f.end_of_file or f.exhausted
loop
f.read_stream (1_024)
Result.append (f.last_string)
end
f.close
end
end
end