/storyteller/test/file_analyser_test.rb
Ruby | 266 lines | 218 code | 48 blank | 0 comment | 0 complexity | 682c6e5ed3edb4cea2b66c10779fc756 MD5 | raw file
Possible License(s): LGPL-2.1
- require 'test/unit'
- require 'test/test_case'
- require 'file_analyser'
- class FileAnalyserTest < Test::Unit::TestCase
- def setup
- FileUtils.mkdir("empty_dir")
- FileUtils.mkdir("single_level_dir")
- File.open("single_level_dir/a.txt","a") { |file| file.puts "12" }
- File.open("single_level_dir/b.txt","a") { |file| file.puts "abc" }
- FileUtils.mkdir("multi_level_dir")
- FileUtils.mkdir("multi_level_dir/dir1")
- FileUtils.mkdir("multi_level_dir/dir2")
- FileUtils.mkdir("multi_level_dir/dir3")
- File.open("my.config","a") do |file|
- file.puts "#ignore=1"
- file.puts "one=1"
- file.puts "two=2"
- file.puts "two=3"
- file.puts "#ignore me too"
- end
- FileUtils.mkdir("root")
- FileUtils.mkdir("root/one")
- FileUtils.mkdir("root/two")
- FileUtils.mkdir("root/three")
-
- File.open("root/one/a.txt","a") { |file| file.puts "1" }
- File.open("root/one/b.txt","a") { |file| file.puts "12" }
- File.open("root/one/c.txt","a") { |file| file.puts "123" }
- File.open("root/two/d.txt","a") { |file| file.puts "1234" }
- File.open("root/two/e.txt","a") { |file| file.puts "12345" }
- File.open("root/three/f.txt","a") { |file| file.puts "123456" }
- File.open("root/three/g.txt","a") { |file| file.puts "1234567" }
- File.open("root/three/h.txt","a") { |file| file.puts "12345678" }
- File.open("multi_level_dir/a.txt","a") { |file| file.puts "1" }
- File.open("multi_level_dir/b.txt","a") { |file| file.puts "1" }
- File.open("multi_level_dir/dir1/c.txt","a") { |file| file.puts "1" }
- end
-
- def teardown
- FileUtils.rm_rf("empty_dir")
- FileUtils.rm_rf("single_level_dir")
- FileUtils.rm_rf("multi_level_dir")
- File.delete("my.config")
- FileUtils.rm_rf("root")
- end
- def test_files_in_recursive
- fa = FileAnalyser.new
- assert_equal 8, fa.files_in("root",true).length
- end
- def test_files_in_not
- fa = FileAnalyser.new
- assert_equal 2, fa.files_in("multi_level_dir",false).length
- end
- def test__directories_in__unknown_directory
- fa = FileAnalyser.new
- all_directories = fa.directories_in("blah")
- assert_equal 0, all_directories.length
- end
- def test__directories_in__empty_directory
- fa = FileAnalyser.new
- all_directories = fa.directories_in("empty_dir")
- assert_equal 0, all_directories.length
- end
- def test__directories_in__no_directory
- fa = FileAnalyser.new
- all_directories = fa.directories_in("single_level_dir")
- assert_equal 0, all_directories.length
- end
- def test__directories_in__has_directories
- fa = FileAnalyser.new
- all_directories = fa.directories_in("multi_level_dir")
- assert_equal 3, all_directories.length
- assert_equal ["multi_level_dir/dir3","multi_level_dir/dir2","multi_level_dir/dir1"], all_directories
- end
- def test__directories_in__ignore
- fa = FileAnalyser.new
- fa.ignoring = ["dir2","dir3"]
- all_directories = fa.directories_in("multi_level_dir")
- assert_equal 1, all_directories.length
- assert_equal ["multi_level_dir/dir1"], all_directories
- end
- def test__files_in__unknown_directory
- fa = FileAnalyser.new
- all_files = fa.files_in("blah")
- assert_equal 0, all_files.length
- end
-
- def test__files_in__empty_directory
- fa = FileAnalyser.new
- all_files = fa.files_in("empty_dir")
- assert_equal 0, all_files.length
- end
-
- def test__files_in__has_files
- fa = FileAnalyser.new
- all_files = fa.files_in("single_level_dir")
- assert_equal 2, all_files.length
- assert_equal ["single_level_dir/b.txt","single_level_dir/a.txt"], all_files
- end
-
- def test__files_in__ignore
- fa = FileAnalyser.new
- fa.ignoring << "b.txt"
- all_files = fa.files_in("single_level_dir")
- assert_equal 1, all_files.length
- assert_equal ["single_level_dir/a.txt"], all_files
- end
-
- def test_load_config_and_properties_of
-
- fa = FileAnalyser.new
- fa.load_config("my.config")
-
- assert_equal "1", fa.property_of("one")
- assert_equal "2", fa.property_of("two")
- assert_equal ["1"], fa.properties_of("one")
- assert_equal ["2","3"], fa.properties_of("two")
- end
- def test_properties_of_unknown
-
- fa = FileAnalyser.new
- assert_equal nil, fa.property_of("three")
- assert_equal [], fa.properties_of("three")
- fa.load_config("my.config")
-
- assert_equal nil, fa.property_of("three")
- assert_equal [], fa.properties_of("three")
- end
- def test_add_property_no_config_file_loaded
- fa = FileAnalyser.new
- assert_equal false, fa.add_property("a","1")
- end
- def test_add_property_unknown_config_file_loaded
- fa = FileAnalyser.new
- fa.load_config("blah.config")
- assert_equal false, fa.add_property("a","1")
- end
- def test_add_property
-
- fa = FileAnalyser.new
- fa.load_config("my.config")
- fa.add_property("one","11")
- fa.add_property("three","3")
- fa = FileAnalyser.new
- fa.load_config("my.config")
- assert_equal "3", fa.property_of("three")
- assert_equal ["1","11"], fa.properties_of("one")
- end
-
- def test_size_of_nil
- fa = FileAnalyser.new
- assert_equal 0, fa.size_of(nil)
- assert_equal 0, fa.size_of("unknown")
- end
-
- def test_size_of_file
- fa = FileAnalyser.new
- assert_equal_one_of 3, 4, fa.size_of("single_level_dir/a.txt")
- assert_equal_one_of 4, 5, fa.size_of("single_level_dir/b.txt")
- end
- def test_size_of_single_directory
- fa = FileAnalyser.new
- assert_equal_one_of 2, 3, fa.size_of("root/one/a.txt")
- assert_equal_one_of 3, 4, fa.size_of("root/one/b.txt")
- assert_equal_one_of 4, 5, fa.size_of("root/one/c.txt")
- assert_equal_one_of 5, 6, fa.size_of("root/two/d.txt")
- assert_equal_one_of 6, 7, fa.size_of("root/two/e.txt")
- assert_equal_one_of 7, 8, fa.size_of("root/three/f.txt")
- assert_equal_one_of 8, 9, fa.size_of("root/three/g.txt")
- assert_equal_one_of 9, 10, fa.size_of("root/three/h.txt")
- assert_equal_one_of 179, 12, fa.size_of("root/one")
- assert_equal_one_of 147, 13, fa.size_of("root/two")
- assert_equal_one_of 194, 27, fa.size_of("root/three")
- assert_equal_one_of 690, 52, fa.size_of("root")
- end
-
- def test_merge
- assert_equal "root\\a.txt", FileAnalyser.merge("root", "a.txt")
- assert_equal "root/a.txt", FileAnalyser.merge("root/", "a.txt")
- assert_equal "root\\a.txt", FileAnalyser.merge("root", "/a.txt")
- assert_equal "root/a.txt", FileAnalyser.merge("root/", "/a.txt")
- assert_equal "root\\a.txt", FileAnalyser.merge("root", "a.txt")
- assert_equal "root\\a.txt", FileAnalyser.merge("root\\", "a.txt")
- assert_equal "root\\a.txt", FileAnalyser.merge("root", "\\a.txt")
- assert_equal "root\\a.txt", FileAnalyser.merge("root\\", "\\a.txt")
- end
-
-
- def test_file_delimiter?
- assert_equal true, FileAnalyser.file_delimiter?("/")
- assert_equal true, FileAnalyser.file_delimiter?("\\")
- assert_equal false, FileAnalyser.file_delimiter?("a")
- end
-
- def test_file_delimiter_for
- assert_equal "\\", FileAnalyser.file_delimiter_for(nil)
- assert_equal "\\", FileAnalyser.file_delimiter_for("")
- assert_equal "\\", FileAnalyser.file_delimiter_for("blah")
- assert_equal "\\", FileAnalyser.file_delimiter_for("blah\\")
- assert_equal "\\", FileAnalyser.file_delimiter_for("blah\\more")
- assert_equal "/", FileAnalyser.file_delimiter_for("blah/")
- assert_equal "/", FileAnalyser.file_delimiter_for("blah\\more/")
- end
-
- def test_fix_absolute_directory
- fa = FileAnalyser.new
- assert_equal "root/blah", FileAnalyser.fix_absolute_directory("root/blah")
- assert_equal "root/blah", FileAnalyser.fix_absolute_directory("root/blah/")
- assert_equal "root", FileAnalyser.fix_absolute_directory("root\\")
- assert_equal "root\\blah", FileAnalyser.fix_absolute_directory("root\\blah")
- assert_equal "root\\blah", FileAnalyser.fix_absolute_directory("root\\blah\\")
- end
- def test_fix_relative_file
- fa = FileAnalyser.new
- assert_equal "root/blah.txt", FileAnalyser.fix_relative_file("/root/blah.txt")
- assert_equal "root/blah.txt", FileAnalyser.fix_relative_file("root/blah.txt")
- assert_equal "root/blah.txt", FileAnalyser.fix_relative_file("root/blah.txt/")
- assert_equal "root/blah.txt", FileAnalyser.fix_relative_file("root/blah.txt\\")
- end
- def test_rename_file_extension
- fa = FileAnalyser.new
- assert_equal "root/blah.rb", FileAnalyser.rename_file_extension("root/blah.txt",".rb")
- assert_equal "root/blah.rb", FileAnalyser.rename_file_extension("root/blah",".rb")
- assert_equal "root/blah.rb", FileAnalyser.rename_file_extension("root/blah.rb",".rb")
- end
-
- def test_image?
- fa = FileAnalyser.new
- assert_equal false, FileAnalyser.image?("root/blah.txt")
- assert_equal true, FileAnalyser.image?("root/blah.jpg")
- assert_equal true, FileAnalyser.image?("root/blah.gif")
- assert_equal false, FileAnalyser.image?("root/blah")
- assert_equal false, FileAnalyser.image?("tmp_dir/mytrip")
- assert_equal true, FileAnalyser.image?("root/blah.JPG")
- assert_equal true, FileAnalyser.image?("root/blah.GIF")
- end
-
- end