1require_relative 'test_optparse' 2 3module TestOptionParser::NoArg 4 class Def1 < TestOptionParser 5 include NoArg 6 def setup 7 super 8 @opt.def_option("-x") {|x| @flag = x} 9 @opt.def_option("--option") {|x| @flag = x} 10 end 11 end 12 class Def2 < TestOptionParser 13 include NoArg 14 def setup 15 super 16 @opt.def_option("-x", "--option") {|x| @flag = x} 17 end 18 end 19 20 def test_short 21 assert_raise(OptionParser::InvalidOption) {@opt.parse!(%w"-xq")} 22 assert_equal(%w"", no_error {@opt.parse!(%w"-x")}) 23 assert_equal(true, @flag) 24 @flag = nil 25 assert_equal(%w"foo", no_error {@opt.parse!(%w"-x foo")}) 26 assert_equal(true, @flag) 27 end 28 29 def test_abbrev 30 assert_raise(OptionParser::InvalidOption) {@opt.parse!(%w"-oq")} 31 assert_equal(%w"", no_error {@opt.parse!(%w"-o")}) 32 assert_equal(true, @flag) 33 @flag = nil 34 assert_raise(OptionParser::InvalidOption) {@opt.parse!(%w"-O")} 35 assert_nil(@flag) 36 @flag = nil 37 assert_equal(%w"foo", no_error {@opt.parse!(%w"-o foo")}) 38 assert_equal(true, @flag) 39 end 40 41 def test_long 42 assert_raise(OptionParser::NeedlessArgument) {@opt.parse!(%w"--option=x")} 43 assert_equal(%w"", no_error {@opt.parse!(%w"--opt")}) 44 assert_equal(true, @flag) 45 @flag = nil 46 assert_equal(%w"foo", no_error {@opt.parse!(%w"--opt foo")}) 47 assert_equal(true, @flag) 48 end 49 50 def test_ambiguous 51 @opt.def_option("--open") {|x|} 52 assert_raise(OptionParser::AmbiguousOption) {@opt.parse!(%w"--op")} 53 assert_raise(OptionParser::AmbiguousOption) {@opt.parse!(%w"-o")} 54 assert_equal(%w"", no_error {@opt.parse!(%w"--opt")}) 55 assert_equal(true, @flag) 56 end 57end 58