test/test-mireru.rb in mireru-0.0.9 vs test/test-mireru.rb in mireru-0.1.0
- old
+ new
@@ -1,4 +1,72 @@
require "mireru/command/mireru"
-class TestMireru < Test::Unit::TestCase
+class MireruTest < Test::Unit::TestCase
+ def setup
+ @mireru = Mireru::Command::Mireru.new
+ end
+
+ def test_run_help_option
+ arguments = %w(--help)
+ mock(@mireru).write_help_message
+ assert_raise SystemExit do
+ @mireru.run(arguments)
+ end
+ end
+
+ def test_run_help_option_sugar
+ arguments = %w(-h)
+ mock(@mireru).write_help_message
+ assert_raise SystemExit do
+ @mireru.run(arguments)
+ end
+ end
+
+ def test_files_from_arguments_no_argument
+ arguments = %w()
+ expected = %w(dir1 file1 dir2)
+ mock(Dir).glob("*") { expected }
+ files = @mireru.__send__(:files_from_arguments, arguments)
+ assert_equal(files, expected)
+ end
+
+ def test_files_from_arguments_deep_option_only
+ arguments = %w(--deep)
+ expected = %w(dir1 file1 dir2 dir1/file1 dir1/file2 dir2/file1)
+ mock(Dir).glob("**/*") { expected }
+ files = @mireru.__send__(:files_from_arguments, arguments)
+ assert_equal(files, expected)
+ end
+
+ def test_files_from_arguments_deep_option_and_dir
+ arguments = %w(--deep dir1 file1 dir2)
+ expected_dir1 = %w(dir1/file1 dir1/file2)
+ expected_dir2 = %w(dir2/file1)
+ expected = [expected_dir1, "file1", expected_dir2].flatten
+ mock(File).directory?("dir1") { true }
+ mock(File).directory?("file1") { false }
+ mock(File).directory?("dir2") { true }
+ mock(Dir).glob("dir1/**/*") { expected_dir1 }
+ mock(Dir).glob("dir2/**/*") { expected_dir2 }
+ files = @mireru.__send__(:files_from_arguments, arguments)
+ assert_equal(files, expected)
+ end
+
+ def test_files_from_arguments_all_dir
+ arguments = %w(dir1 dir2)
+ expected_dir1 = %w(dir1/file1 dir1/file2)
+ expected_dir2 = %w(dir2/file1)
+ expected = [expected_dir1, expected_dir2].flatten
+ mock(File).directory?("dir1") { true }
+ mock(File).directory?("dir2") { true }
+ mock(Dir).glob("dir1/*") { expected_dir1 }
+ mock(Dir).glob("dir2/*") { expected_dir2 }
+ files = @mireru.__send__(:files_from_arguments, arguments)
+ assert_equal(files, expected)
+ end
+
+ def test_files_from_arguments_else
+ arguments = %w(dir1 file1 dir2)
+ files = @mireru.__send__(:files_from_arguments, arguments)
+ assert_equal(files, arguments)
+ end
end