test/test_application.rb in rubikon-0.5.2 vs test/test_application.rb in rubikon-0.5.3
- old
+ new
@@ -118,11 +118,11 @@
assert_equal 'test', @app.run(%w{globalopt --go2 test})
end
should 'have a working help command' do
@app.run(%w{help})
- assert_match /Usage: [^ ]* \[--debug\|-d\] \[--gflag\|--gf1\|--gf2\] \[--gopt\|--go1\|--go2 \.\.\.\] \[--verbose\|-v\] \[command\] \[args\]\n\nCommands:\n arguments \n globalopt \n help Show help for the application or a single command\n input \n object_id \n parameters \n progressbar \n sandbox \n throbber \n/, @ostream.string
+ assert_match /Usage: [^ ]* \[--debug\|-d\] \[--gflag\|--gf1\|--gf2\] \[--gopt\|--go1\|--go2 \.\.\.\] \[--verbose\|-v\] command \[args\]\n\nCommands:\n arguments \n globalopt \n help Display this help screen\n input \n object_id \n parameters \n progressbar \n sandbox \n throbber \n/, @ostream.string
end
should 'have a working DSL for command parameters' do
params = @app.run(%w{parameters}).values.uniq.sort { |a,b| a.name.to_s <=> b.name.to_s }
assert_equal :flag, params[0].name
@@ -163,9 +163,67 @@
@app.run(%w{-dv})
assert $DEBUG
assert $VERBOSE
$DEBUG = false
$VERBOSE = false
+ end
+
+ should 'parse arguments correctly' do
+ cmd, global_params, args = @app.parse_arguments(%w{})
+ assert_instance_of Command, cmd
+ assert_equal cmd.name, :__default
+ assert_equal [], global_params
+ assert_equal [], args
+
+ cmd, global_params, args = @app.parse_arguments(%w{-d -v})
+ assert_instance_of Command, cmd
+ assert_equal cmd.name, :__default
+ assert_instance_of Array, global_params
+ assert_equal 2, global_params.size
+ assert_instance_of Flag, global_params[0]
+ assert_equal :debug, global_params[0].name
+ assert_instance_of Flag, global_params[1]
+ assert_equal :verbose, global_params[1].name
+ assert_equal [], args
+
+ cmd, global_params, args = @app.parse_arguments(%w{-dv})
+ assert_instance_of Command, cmd
+ assert_equal cmd.name, :__default
+ assert_instance_of Array, global_params
+ assert_equal 2, global_params.size
+ assert_instance_of Flag, global_params[0]
+ assert_equal :debug, global_params[0].name
+ assert_instance_of Flag, global_params[1]
+ assert_equal :verbose, global_params[1].name
+ assert_equal [], args
+
+ cmd, global_params, args = @app.parse_arguments(%w{-x})
+ assert_instance_of Command, cmd
+ assert_equal cmd.name, :__default
+ assert_instance_of Array, global_params
+ assert_equal 0, global_params.size
+ assert_equal %w{-x}, args
+
+ cmd, global_params, args = @app.parse_arguments(%w{-d -v object_id})
+ assert_instance_of Command, cmd
+ assert_equal cmd.name, :object_id
+ assert_instance_of Array, global_params
+ assert_equal 2, global_params.size
+ assert_instance_of Flag, global_params[0]
+ assert_equal :debug, global_params[0].name
+ assert_instance_of Flag, global_params[1]
+ assert_equal :verbose, global_params[1].name
+ assert_equal [], args
+
+ cmd, global_params, args = @app.parse_arguments(%w{sandbox --gopt test puts})
+ assert_instance_of Command, cmd
+ assert_equal cmd.name, :sandbox
+ assert_instance_of Array, global_params
+ assert_equal 1, global_params.size
+ assert_instance_of Option, global_params[0]
+ assert_equal :gopt, global_params[0].name
+ assert_equal %w{test}, global_params[0].args
+ assert_equal %w{puts}, args
end
end
end