test/test_option_parser.rb in cri-2.6.1 vs test/test_option_parser.rb in cri-2.7.0
- old
+ new
@@ -1,294 +1,282 @@
# encoding: utf-8
-class Cri::OptionParserTestCase < Cri::TestCase
+module Cri
+ class OptionParserTestCase < Cri::TestCase
+ def test_parse_without_options
+ input = %w( foo bar baz )
+ definitions = []
- def test_parse_without_options
- input = %w( foo bar baz )
- definitions = []
+ parser = Cri::OptionParser.parse(input, definitions)
- parser = Cri::OptionParser.parse(input, definitions)
+ assert_equal({}, parser.options)
+ assert_equal(%w(foo bar baz), parser.arguments)
+ end
- assert_equal({}, parser.options)
- assert_equal([ 'foo', 'bar', 'baz' ], parser.arguments)
- end
+ def test_parse_with_invalid_option
+ input = %w( foo -x )
+ definitions = []
- def test_parse_with_invalid_option
- input = %w( foo -x )
- definitions = []
+ assert_raises(Cri::OptionParser::IllegalOptionError) do
+ Cri::OptionParser.parse(input, definitions)
+ end
+ end
- result = nil
+ def test_parse_with_unused_options
+ input = %w( foo )
+ definitions = [
+ { :long => 'aaa', :short => 'a', :argument => :forbidden },
+ ]
- assert_raises(Cri::OptionParser::IllegalOptionError) do
parser = Cri::OptionParser.parse(input, definitions)
+
+ assert(!parser.options[:aaa])
end
- end
- def test_parse_with_unused_options
- input = %w( foo )
- definitions = [
- { :long => 'aaa', :short => 'a', :argument => :forbidden }
- ]
+ def test_parse_with_long_valueless_option
+ input = %w( foo --aaa bar )
+ definitions = [
+ { :long => 'aaa', :short => 'a', :argument => :forbidden },
+ ]
- parser = Cri::OptionParser.parse(input, definitions)
+ parser = Cri::OptionParser.parse(input, definitions)
- assert(!parser.options[:aaa])
- end
+ assert(parser.options[:aaa])
+ assert_equal(%w(foo bar), parser.arguments)
+ end
- def test_parse_with_long_valueless_option
- input = %w( foo --aaa bar )
- definitions = [
- { :long => 'aaa', :short => 'a', :argument => :forbidden }
- ]
+ def test_parse_with_long_valueful_option
+ input = %w( foo --aaa xxx bar )
+ definitions = [
+ { :long => 'aaa', :short => 'a', :argument => :required },
+ ]
- parser = Cri::OptionParser.parse(input, definitions)
+ parser = Cri::OptionParser.parse(input, definitions)
- assert(parser.options[:aaa])
- assert_equal([ 'foo', 'bar' ], parser.arguments)
- end
+ assert_equal({ :aaa => 'xxx' }, parser.options)
+ assert_equal(%w(foo bar), parser.arguments)
+ end
- def test_parse_with_long_valueful_option
- input = %w( foo --aaa xxx bar )
- definitions = [
- { :long => 'aaa', :short => 'a', :argument => :required }
- ]
+ def test_parse_with_long_valueful_equalsign_option
+ input = %w( foo --aaa=xxx bar )
+ definitions = [
+ { :long => 'aaa', :short => 'a', :argument => :required },
+ ]
- parser = Cri::OptionParser.parse(input, definitions)
+ parser = Cri::OptionParser.parse(input, definitions)
- assert_equal({ :aaa => 'xxx' }, parser.options)
- assert_equal([ 'foo', 'bar' ], parser.arguments)
- end
+ assert_equal({ :aaa => 'xxx' }, parser.options)
+ assert_equal(%w(foo bar), parser.arguments)
+ end
- def test_parse_with_long_valueful_equalsign_option
- input = %w( foo --aaa=xxx bar )
- definitions = [
- { :long => 'aaa', :short => 'a', :argument => :required }
- ]
+ def test_parse_with_long_valueful_option_with_missing_value
+ input = %w( foo --aaa )
+ definitions = [
+ { :long => 'aaa', :short => 'a', :argument => :required },
+ ]
- parser = Cri::OptionParser.parse(input, definitions)
+ assert_raises(Cri::OptionParser::OptionRequiresAnArgumentError) do
+ Cri::OptionParser.parse(input, definitions)
+ end
+ end
- assert_equal({ :aaa => 'xxx' }, parser.options)
- assert_equal([ 'foo', 'bar' ], parser.arguments)
- end
+ def test_parse_with_two_long_valueful_options
+ input = %w( foo --all --port 2 )
+ definitions = [
+ { :long => 'all', :short => 'a', :argument => :required },
+ { :long => 'port', :short => 'p', :argument => :required },
+ ]
- def test_parse_with_long_valueful_option_with_missing_value
- input = %w( foo --aaa )
- definitions = [
- { :long => 'aaa', :short => 'a', :argument => :required }
- ]
+ assert_raises(Cri::OptionParser::OptionRequiresAnArgumentError) do
+ Cri::OptionParser.parse(input, definitions)
+ end
+ end
- result = nil
+ def test_parse_with_long_valueless_option_with_optional_value
+ input = %w( foo --aaa )
+ definitions = [
+ { :long => 'aaa', :short => 'a', :argument => :optional },
+ ]
- assert_raises(Cri::OptionParser::OptionRequiresAnArgumentError) do
parser = Cri::OptionParser.parse(input, definitions)
+
+ assert(parser.options[:aaa])
+ assert_equal(['foo'], parser.arguments)
end
- end
- def test_parse_with_two_long_valueful_options
- input = %w( foo --all --port 2 )
- definitions = [
- { :long => 'all', :short => 'a', :argument => :required },
- { :long => 'port', :short => 'p', :argument => :required }
- ]
+ def test_parse_with_long_valueful_option_with_optional_value
+ input = %w( foo --aaa xxx )
+ definitions = [
+ { :long => 'aaa', :short => 'a', :argument => :optional },
+ ]
- result = nil
-
- assert_raises(Cri::OptionParser::OptionRequiresAnArgumentError) do
parser = Cri::OptionParser.parse(input, definitions)
+
+ assert_equal({ :aaa => 'xxx' }, parser.options)
+ assert_equal(['foo'], parser.arguments)
end
- end
- def test_parse_with_long_valueless_option_with_optional_value
- input = %w( foo --aaa )
- definitions = [
- { :long => 'aaa', :short => 'a', :argument => :optional }
- ]
+ def test_parse_with_long_valueless_option_with_optional_value_and_more_options
+ input = %w( foo --aaa -b -c )
+ definitions = [
+ { :long => 'aaa', :short => 'a', :argument => :optional },
+ { :long => 'bbb', :short => 'b', :argument => :forbidden },
+ { :long => 'ccc', :short => 'c', :argument => :forbidden },
+ ]
- parser = Cri::OptionParser.parse(input, definitions)
+ parser = Cri::OptionParser.parse(input, definitions)
- assert(parser.options[:aaa])
- assert_equal([ 'foo' ], parser.arguments)
- end
+ assert(parser.options[:aaa])
+ assert(parser.options[:bbb])
+ assert(parser.options[:ccc])
+ assert_equal(['foo'], parser.arguments)
+ end
- def test_parse_with_long_valueful_option_with_optional_value
- input = %w( foo --aaa xxx )
- definitions = [
- { :long => 'aaa', :short => 'a', :argument => :optional }
- ]
+ def test_parse_with_short_valueless_options
+ input = %w( foo -a bar )
+ definitions = [
+ { :long => 'aaa', :short => 'a', :argument => :forbidden },
+ ]
- parser = Cri::OptionParser.parse(input, definitions)
+ parser = Cri::OptionParser.parse(input, definitions)
- assert_equal({ :aaa => 'xxx' }, parser.options)
- assert_equal([ 'foo' ], parser.arguments)
- end
+ assert(parser.options[:aaa])
+ assert_equal(%w(foo bar), parser.arguments)
+ end
- def test_parse_with_long_valueless_option_with_optional_value_and_more_options
- input = %w( foo --aaa -b -c )
- definitions = [
- { :long => 'aaa', :short => 'a', :argument => :optional },
- { :long => 'bbb', :short => 'b', :argument => :forbidden },
- { :long => 'ccc', :short => 'c', :argument => :forbidden }
- ]
+ def test_parse_with_short_valueful_option_with_missing_value
+ input = %w( foo -a )
+ definitions = [
+ { :long => 'aaa', :short => 'a', :argument => :required },
+ ]
- parser = Cri::OptionParser.parse(input, definitions)
+ assert_raises(Cri::OptionParser::OptionRequiresAnArgumentError) do
+ Cri::OptionParser.parse(input, definitions)
+ end
+ end
- assert(parser.options[:aaa])
- assert(parser.options[:bbb])
- assert(parser.options[:ccc])
- assert_equal([ 'foo' ], parser.arguments)
- end
+ def test_parse_with_short_combined_valueless_options
+ input = %w( foo -abc bar )
+ definitions = [
+ { :long => 'aaa', :short => 'a', :argument => :forbidden },
+ { :long => 'bbb', :short => 'b', :argument => :forbidden },
+ { :long => 'ccc', :short => 'c', :argument => :forbidden },
+ ]
- def test_parse_with_short_valueless_options
- input = %w( foo -a bar )
- definitions = [
- { :long => 'aaa', :short => 'a', :argument => :forbidden }
- ]
+ parser = Cri::OptionParser.parse(input, definitions)
- parser = Cri::OptionParser.parse(input, definitions)
+ assert(parser.options[:aaa])
+ assert(parser.options[:bbb])
+ assert(parser.options[:ccc])
+ assert_equal(%w(foo bar), parser.arguments)
+ end
- assert(parser.options[:aaa])
- assert_equal([ 'foo', 'bar' ], parser.arguments)
- end
+ def test_parse_with_short_combined_valueful_options_with_missing_value
+ input = %w( foo -abc bar )
+ definitions = [
+ { :long => 'aaa', :short => 'a', :argument => :required },
+ { :long => 'bbb', :short => 'b', :argument => :forbidden },
+ { :long => 'ccc', :short => 'c', :argument => :forbidden },
+ ]
- def test_parse_with_short_valueful_option_with_missing_value
- input = %w( foo -a )
- definitions = [
- { :long => 'aaa', :short => 'a', :argument => :required }
- ]
+ assert_raises(Cri::OptionParser::OptionRequiresAnArgumentError) do
+ Cri::OptionParser.parse(input, definitions)
+ end
+ end
- result = nil
+ def test_parse_with_two_short_valueful_options
+ input = %w( foo -a -p 2 )
+ definitions = [
+ { :long => 'all', :short => 'a', :argument => :required },
+ { :long => 'port', :short => 'p', :argument => :required },
+ ]
- assert_raises(Cri::OptionParser::OptionRequiresAnArgumentError) do
- parser = Cri::OptionParser.parse(input, definitions)
+ assert_raises(Cri::OptionParser::OptionRequiresAnArgumentError) do
+ Cri::OptionParser.parse(input, definitions)
+ end
end
- end
- def test_parse_with_short_combined_valueless_options
- input = %w( foo -abc bar )
- definitions = [
- { :long => 'aaa', :short => 'a', :argument => :forbidden },
- { :long => 'bbb', :short => 'b', :argument => :forbidden },
- { :long => 'ccc', :short => 'c', :argument => :forbidden }
- ]
+ def test_parse_with_short_valueless_option_with_optional_value
+ input = %w( foo -a )
+ definitions = [
+ { :long => 'aaa', :short => 'a', :argument => :optional },
+ ]
- parser = Cri::OptionParser.parse(input, definitions)
+ parser = Cri::OptionParser.parse(input, definitions)
- assert(parser.options[:aaa])
- assert(parser.options[:bbb])
- assert(parser.options[:ccc])
- assert_equal([ 'foo', 'bar' ], parser.arguments)
- end
+ assert(parser.options[:aaa])
+ assert_equal(['foo'], parser.arguments)
+ end
- def test_parse_with_short_combined_valueful_options_with_missing_value
- input = %w( foo -abc bar )
- definitions = [
- { :long => 'aaa', :short => 'a', :argument => :required },
- { :long => 'bbb', :short => 'b', :argument => :forbidden },
- { :long => 'ccc', :short => 'c', :argument => :forbidden }
- ]
+ def test_parse_with_short_valueful_option_with_optional_value
+ input = %w( foo -a xxx )
+ definitions = [
+ { :long => 'aaa', :short => 'a', :argument => :optional },
+ ]
- result = nil
-
- assert_raises(Cri::OptionParser::OptionRequiresAnArgumentError) do
parser = Cri::OptionParser.parse(input, definitions)
+
+ assert_equal({ :aaa => 'xxx' }, parser.options)
+ assert_equal(['foo'], parser.arguments)
end
- end
- def test_parse_with_two_short_valueful_options
- input = %w( foo -a -p 2 )
- definitions = [
- { :long => 'all', :short => 'a', :argument => :required },
- { :long => 'port', :short => 'p', :argument => :required }
- ]
+ def test_parse_with_short_valueless_option_with_optional_value_and_more_options
+ input = %w( foo -a -b -c )
+ definitions = [
+ { :long => 'aaa', :short => 'a', :argument => :optional },
+ { :long => 'bbb', :short => 'b', :argument => :forbidden },
+ { :long => 'ccc', :short => 'c', :argument => :forbidden },
+ ]
- result = nil
-
- assert_raises(Cri::OptionParser::OptionRequiresAnArgumentError) do
parser = Cri::OptionParser.parse(input, definitions)
+
+ assert(parser.options[:aaa])
+ assert(parser.options[:bbb])
+ assert(parser.options[:ccc])
+ assert_equal(['foo'], parser.arguments)
end
- end
- def test_parse_with_short_valueless_option_with_optional_value
- input = %w( foo -a )
- definitions = [
- { :long => 'aaa', :short => 'a', :argument => :optional }
- ]
+ def test_parse_with_single_hyphen
+ input = %w( foo - bar )
+ definitions = []
- parser = Cri::OptionParser.parse(input, definitions)
+ parser = Cri::OptionParser.parse(input, definitions)
- assert(parser.options[:aaa])
- assert_equal([ 'foo' ], parser.arguments)
- end
+ assert_equal({}, parser.options)
+ assert_equal(['foo', '-', 'bar'], parser.arguments)
+ end
- def test_parse_with_short_valueful_option_with_optional_value
- input = %w( foo -a xxx )
- definitions = [
- { :long => 'aaa', :short => 'a', :argument => :optional }
- ]
+ def test_parse_with_end_marker
+ input = %w( foo bar -- -x --yyy -abc )
+ definitions = []
- parser = Cri::OptionParser.parse(input, definitions)
+ parser = Cri::OptionParser.parse(input, definitions)
- assert_equal({ :aaa => 'xxx' }, parser.options)
- assert_equal([ 'foo' ], parser.arguments)
- end
+ assert_equal({}, parser.options)
+ assert_equal(['foo', 'bar', '-x', '--yyy', '-abc'], parser.arguments)
+ assert_equal(['foo', 'bar', '--', '-x', '--yyy', '-abc'], parser.arguments.raw)
+ end
- def test_parse_with_short_valueless_option_with_optional_value_and_more_options
- input = %w( foo -a -b -c )
- definitions = [
- { :long => 'aaa', :short => 'a', :argument => :optional },
- { :long => 'bbb', :short => 'b', :argument => :forbidden },
- { :long => 'ccc', :short => 'c', :argument => :forbidden }
- ]
+ def test_parse_with_end_marker_between_option_key_and_value
+ input = %w( foo --aaa -- zzz )
+ definitions = [
+ { :long => 'aaa', :short => 'a', :argument => :required },
+ ]
- parser = Cri::OptionParser.parse(input, definitions)
+ assert_raises(Cri::OptionParser::OptionRequiresAnArgumentError) do
+ Cri::OptionParser.parse(input, definitions)
+ end
+ end
- assert(parser.options[:aaa])
- assert(parser.options[:bbb])
- assert(parser.options[:ccc])
- assert_equal([ 'foo' ], parser.arguments)
- end
-
- def test_parse_with_single_hyphen
- input = %w( foo - bar )
- definitions = []
-
- parser = Cri::OptionParser.parse(input, definitions)
-
- assert_equal({}, parser.options)
- assert_equal([ 'foo', '-', 'bar' ], parser.arguments)
- end
-
- def test_parse_with_end_marker
- input = %w( foo bar -- -x --yyy -abc )
- definitions = []
-
- parser = Cri::OptionParser.parse(input, definitions)
-
- assert_equal({}, parser.options)
- assert_equal([ 'foo', 'bar', '-x', '--yyy', '-abc' ], parser.arguments)
- assert_equal([ 'foo', 'bar', '--', '-x', '--yyy', '-abc' ], parser.arguments.raw)
- end
-
- def test_parse_with_end_marker_between_option_key_and_value
- input = %w( foo --aaa -- zzz )
- definitions = [
- { :long => 'aaa', :short => 'a', :argument => :required }
- ]
-
- assert_raises(Cri::OptionParser::OptionRequiresAnArgumentError) do
+ def test_parse_with_multiple_options
+ input = %w( foo -o test -o test2 -v -v -v)
+ definitions = [
+ { :long => 'long', :short => 'o', :argument => :required, :multiple => true },
+ { :long => 'verbose', :short => 'v', :multiple => true },
+ ]
parser = Cri::OptionParser.parse(input, definitions)
+
+ assert_equal(%w(test test2), parser.options[:long])
+ assert_equal(3, parser.options[:verbose].size)
end
end
-
- def test_parse_with_multiple_options
- input = %w( foo -o test -o test2 -v -v -v)
- definitions = [
- { :long => 'long', :short => 'o', :argument => :required, :multiple => true },
- { :long => 'verbose', :short => 'v', :multiple => true }
- ]
- parser = Cri::OptionParser.parse(input, definitions)
-
- assert_equal(['test', 'test2'], parser.options[:long])
- assert_equal(3, parser.options[:verbose].size)
- end
-
end