Sha256: 6d37e4f3a1157fa96ad4f31b21804acda580a8a1d40ba22cafbdfc42aa556ebc

Contents?: true

Size: 1.43 KB

Versions: 6

Compression:

Stored size: 1.43 KB

Contents

require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')

describe "Proviso Base Command" do
  it "should display" do
    @base = Proviso::Command::Base.new([])
    @base.display("Hello World")
  
  end
  
  it "should error" do
    Proviso::Command.should_receive(:error).and_return("I see an error")
    Proviso::Command::Base.new([]).error("I see an error")
  end
  
  context "option parsing" do
    before(:each) do
      @base = Proviso::Command::Base.new([])
    end
    
    it "extracts options from args" do
      @base.stub!(:args).and_return(%w( a b --something value c d ))
      @base.extract_option('--something').should == 'value'
    end

    it "accepts options without value" do
      @base.stub!(:args).and_return(%w( a b --something))
      @base.extract_option('--something').should be_true
    end

    it "doesn't consider parameters as a value" do
      @base.stub!(:args).and_return(%w( a b --something --something-else c d))
      @base.extract_option('--something').should be_true
    end

    it "accepts a default value" do
      @base.stub!(:args).and_return(%w( a b --something))
      @base.extract_option('--something', 'default').should == 'default'
    end

    it "is not affected by multiple arguments with the same value" do
      @base.stub!(:args).and_return(%w( --arg1 val --arg2 val ))
      @base.extract_option('--arg1').should == 'val'
      @base.args.should == ['--arg2', 'val']
    end
  end
  
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
proviso-0.2.0 spec/proviso/commands/base_spec.rb
proviso-0.2.0.beta4 spec/proviso/commands/base_spec.rb
proviso-0.2.0.beta3 spec/proviso/commands/base_spec.rb
proviso-0.2.0.beta2 spec/proviso/commands/base_spec.rb
proviso-0.2.0.beta1 spec/proviso/commands/base_spec.rb
proviso-0.1.0 spec/proviso/commands/base_spec.rb