test/test_command_dsl.rb in cri-2.11.0 vs test/test_command_dsl.rb in cri-2.12.0

- old
+ new

@@ -47,11 +47,11 @@ { short: 'd', long: 'ddd', desc: 'opt d', argument: :forbidden, multiple: false, hidden: false, block: nil, default: nil, transform: nil }, { short: 'e', long: 'eee', desc: 'opt e', argument: :forbidden, multiple: false, hidden: false, block: nil, default: nil, transform: nil }, { short: 'f', long: 'fff', desc: 'opt f', argument: :forbidden, multiple: false, hidden: true, block: nil, default: nil, transform: nil }, ], ) - actual_option_definitions = Set.new(command.option_definitions) + actual_option_definitions = Set.new(command.option_definitions.map(&:to_h)) assert_equal expected_option_definitions, actual_option_definitions end def test_optional_options # Define @@ -82,11 +82,11 @@ [ { short: 's', long: nil, desc: 'short', argument: :forbidden, multiple: false, hidden: false, block: nil, default: nil, transform: nil }, { short: nil, long: 'long', desc: 'long', argument: :forbidden, multiple: false, hidden: false, block: nil, default: nil, transform: nil }, ], ) - actual_option_definitions = Set.new(command.option_definitions) + actual_option_definitions = Set.new(command.option_definitions.map(&:to_h)) assert_equal expected_option_definitions, actual_option_definitions end def test_multiple # Define @@ -107,11 +107,11 @@ { short: 'f', long: 'flag', desc: 'flag', argument: :forbidden, multiple: true, hidden: false, block: nil, default: nil, transform: nil }, { short: 'r', long: 'required', desc: 'req', argument: :required, multiple: true, hidden: false, block: nil, default: nil, transform: nil }, { short: 'o', long: 'optional', desc: 'opt', argument: :optional, multiple: true, hidden: false, block: nil, default: nil, transform: nil }, ], ) - actual_option_definitions = Set.new(command.option_definitions) + actual_option_definitions = Set.new(command.option_definitions.map(&:to_h)) assert_equal expected_option_definitions, actual_option_definitions end def test_hidden # Define @@ -132,11 +132,11 @@ { short: 'f', long: 'flag', desc: 'flag', argument: :forbidden, multiple: false, hidden: true, block: nil, default: nil, transform: nil }, { short: 'r', long: 'required', desc: 'req', argument: :required, multiple: false, hidden: true, block: nil, default: nil, transform: nil }, { short: 'o', long: 'optional', desc: 'opt', argument: :optional, multiple: false, hidden: true, block: nil, default: nil, transform: nil }, ], ) - actual_option_definitions = Set.new(command.option_definitions) + actual_option_definitions = Set.new(command.option_definitions.map(&:to_h)) assert_equal expected_option_definitions, actual_option_definitions end def test_required_short_and_long # Define @@ -237,8 +237,36 @@ # Check $did_it_work = false command.run(%w[certainly]) assert_equal 'certainly', $did_it_work + end + + def test_params + # Define + dsl = Cri::CommandDSL.new + dsl.instance_eval do + name 'moo' + usage 'dunno whatever' + summary 'does stuff' + description 'This command does a lot of stuff.' + + param :foo + param :bar + param :qux + + run do |_opts, args| + $args_num = { foo: args[0], bar: args[1], qux: args[2] } + $args_sym = { foo: args[:foo], bar: args[:bar], qux: args[:qux] } + end + end + command = dsl.command + + # Run + $args_num = '???' + $args_sym = '???' + command.run(%w[a b c]) + assert_equal({ foo: 'a', bar: 'b', qux: 'c' }, $args_num) + assert_equal({ foo: 'a', bar: 'b', qux: 'c' }, $args_sym) end end end