require 'test/unit' require 'dirtravel' class DirTravelTest < Test::Unit::TestCase require 'fileutils' Dir.chdir 'test' FileUtils.rm_r( 'test' ) if File.exist?( 'test' ) # Create test file hierarchy. FileUtils.mkdir_p 'test/test_0/test_0_0' FileUtils.mkdir_p 'test/test_0/test_0_1' FileUtils.mkdir_p 'test/test_1' [ 'test/test_0/test_0_0/test.xtx', 'test/test_0/test_0_1/test_0.txt', 'test/test_0/test_0_1/test_1.txt', 'test/test_1/test.txt' ].each do |tf| File.open( tf, 'w' ) do |fh| fh.puts tf end end def test_height data = DirTravel::Travel.filetree( 'test' ) assert_equal( 3, data.node_height ) end def test_suffix_selection data = DirTravel::Travel.filetree( 'test', { :suffix => ".txt" } ) data.files.each do |i| assert_match( i.name, /.txt$/ ) end end def test_paths data = DirTravel::Travel.filetree( 'test' ) assert_equal( 'test/test_0/test_0_1', data.select_level( 2 )[ 0 ].path ) assert_equal( 'test/test_0/test_0_0', data.select_level( 2 )[ 1 ].path ) assert_equal( 'test_0/test_0_1', data.select_level( 2 )[ 0 ].subpath ) assert_equal( 'test/test_0', data.select_level( 2 )[ 0 ].dir ) end def test_stat data = DirTravel::Travel.filetree( 'test' ) file = ( data.select do |i| i.name == 'test.xtx' end )[0] stat = file.stat assert_equal( 30, stat.size ) end def test_sort data = DirTravel::Travel.filetree( 'test' ) assert_equal( 'test/test_0/test_0_1', data.select_level( 2 )[ 0 ].path ) data = DirTravel::Travel.filetree( 'test', { :sort => true } ) assert_equal( 'test/test_0/test_0_0', data.select_level( 2 )[ 0 ].path ) end def test_files data = DirTravel::Travel.filetree( 'test' ) assert_equal( 9, data.length ) data = DirTravel::Travel.filetree( 'test', { :files => false } ) assert_equal( 5, data.length ) end end