diff options
Diffstat (limited to 'spec/rubyspec/library/getoptlong/ordering_spec.rb')
-rw-r--r-- | spec/rubyspec/library/getoptlong/ordering_spec.rb | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/spec/rubyspec/library/getoptlong/ordering_spec.rb b/spec/rubyspec/library/getoptlong/ordering_spec.rb new file mode 100644 index 0000000000..e445de2255 --- /dev/null +++ b/spec/rubyspec/library/getoptlong/ordering_spec.rb @@ -0,0 +1,38 @@ +require File.expand_path('../../../spec_helper', __FILE__) +require 'getoptlong' + +describe "GetoptLong#ordering=" do + it "raises an ArgumentError if called after processing has started" do + argv [ "--size", "10k", "--verbose" ] do + opts = GetoptLong.new([ '--size', GetoptLong::REQUIRED_ARGUMENT ], + [ '--verbose', GetoptLong::NO_ARGUMENT ]) + opts.quiet = true + opts.get + + lambda { + opts.ordering = GetoptLong::PERMUTE + }.should raise_error(ArgumentError) + end + end + + it "raises an ArgumentError if given an invalid value" do + opts = GetoptLong.new + + lambda { + opts.ordering = 12345 + }.should raise_error(ArgumentError) + end + + it "does not allow changing ordering to PERMUTE if ENV['POSIXLY_CORRECT'] is set" do + begin + old_env_value = ENV['POSIXLY_CORRECT'] + ENV['POSIXLY_CORRECT'] = "" + + opts = GetoptLong.new + opts.ordering = GetoptLong::PERMUTE + opts.ordering.should == GetoptLong::REQUIRE_ORDER + ensure + ENV['POSIXLY_CORRECT'] = old_env_value + end + end +end |