diff options
Diffstat (limited to 'test/test_getoptlong.rb')
-rw-r--r-- | test/test_getoptlong.rb | 163 |
1 files changed, 0 insertions, 163 deletions
diff --git a/test/test_getoptlong.rb b/test/test_getoptlong.rb deleted file mode 100644 index 0cd370b6c7..0000000000 --- a/test/test_getoptlong.rb +++ /dev/null @@ -1,163 +0,0 @@ -require 'test/unit' -require 'getoptlong' - -class TestGetoptLong < Test::Unit::TestCase - - def verify(test_argv, expected_remaining_argv, expected_options) - # Save ARGV and replace it with a test ARGV. - argv_saved = ARGV.dup - ARGV.replace(test_argv) - # Define options. - opts = GetoptLong.new( - ['--xxx', '-x', '--aaa', '-a', GetoptLong::REQUIRED_ARGUMENT], - ['--yyy', '-y', '--bbb', '-b', GetoptLong::OPTIONAL_ARGUMENT], - ['--zzz', '-z', '--ccc', '-c', GetoptLong::NO_ARGUMENT] - ) - opts.quiet = true - # Gather options. - actual_options = [] - opts.each do |opt, arg| - actual_options << "#{opt}: #{arg}" - end - # Save remaining test ARGV and restore original ARGV. - actual_remaining_argv = ARGV.dup - ARGV.replace(argv_saved) - # Assert. - assert_equal(expected_remaining_argv, actual_remaining_argv, 'ARGV') - assert_equal(expected_options, actual_options, 'Options') - end - - def test_no_options - expected_options = [] - expected_argv = %w[foo bar] - argv = %w[foo bar] - verify(argv, expected_argv, expected_options) - end - - def test_required_argument - expected_options = [ - '--xxx: arg' - ] - expected_argv = %w[foo bar] - options = %w[--xxx --xx --x -x --aaa --aa --a -a] - options.each do |option| - argv = ['foo', option, 'arg', 'bar'] - verify(argv, expected_argv, expected_options) - end - end - - def test_required_argument_missing - options = %w[--xxx --xx --x -x --aaa --aa --a -a] - options.each do |option| - argv = [option] - e = assert_raise(GetoptLong::MissingArgument) do - verify(argv, [], []) - end - assert_match('requires an argument', e.message) - end - end - - def test_optional_argument - expected_options = [ - '--yyy: arg' - ] - expected_argv = %w[foo bar] - options = %w[--yyy --y --y -y --bbb --bb --b -b] - options.each do |option| - argv = ['foo', 'bar', option, 'arg'] - verify(argv, expected_argv, expected_options) - end - end - - def test_optional_argument_missing - expected_options = [ - '--yyy: ' - ] - expected_argv = %w[foo bar] - options = %w[--yyy --y --y -y --bbb --bb --b -b] - options.each do |option| - argv = ['foo', 'bar', option] - verify(argv, expected_argv, expected_options) - end - end - - def test_no_argument - expected_options = [ - '--zzz: ' - ] - expected_argv = %w[foo bar] - options = %w[--zzz --zz --z -z --ccc --cc --c -c] - options.each do |option| - argv = ['foo', option, 'bar'] - verify(argv, expected_argv, expected_options) - end - end - - def test_new_with_empty_array - e = assert_raise(ArgumentError) do - GetoptLong.new([]) - end - assert_match(/no argument-flag/, e.message) - end - - def test_new_with_bad_array - e = assert_raise(ArgumentError) do - GetoptLong.new('foo') - end - assert_match(/option list contains non-Array argument/, e.message) - end - - def test_new_with_empty_subarray - e = assert_raise(ArgumentError) do - GetoptLong.new([[]]) - end - assert_match(/no argument-flag/, e.message) - end - - def test_new_with_bad_subarray - e = assert_raise(ArgumentError) do - GetoptLong.new([1]) - end - assert_match(/no option name/, e.message) - end - - def test_new_with_invalid_option - invalid_options = %w[verbose -verbose -- +] - invalid_options.each do |invalid_option| - e = assert_raise(ArgumentError, invalid_option.to_s) do - arguments = [ - [invalid_option, '-v', GetoptLong::NO_ARGUMENT] - ] - GetoptLong.new(*arguments) - end - assert_match(/invalid option/, e.message) - end - end - - def test_new_with_invalid_alias - invalid_aliases = %w[v - -- +] - invalid_aliases.each do |invalid_alias| - e = assert_raise(ArgumentError, invalid_alias.to_s) do - arguments = [ - ['--verbose', invalid_alias, GetoptLong::NO_ARGUMENT] - ] - GetoptLong.new(*arguments) - end - assert_match(/invalid option/, e.message) - end - end - - def test_new_with_invalid_flag - invalid_flags = ['foo'] - invalid_flags.each do |invalid_flag| - e = assert_raise(ArgumentError, invalid_flag.to_s) do - arguments = [ - ['--verbose', '-v', invalid_flag] - ] - GetoptLong.new(*arguments) - end - assert_match(/no argument-flag/, e.message) - end - end - -end |