Sha256: e3acd46e0c911da322e446ef021052e7b6c34c63c1b60f831346905fd4b558e8

Contents?: true

Size: 1.67 KB

Versions: 37

Compression:

Stored size: 1.67 KB

Contents

require_relative '../test_helper'

describe HammerCLI::Options::OptionCollector do
  before do
    @recognised_options = [mock('Option1'), mock('Option2')]
    @source1_result = {:option1 => 1, :option2 => nil, :option4 => HammerCLI::NilValue}
    @source2_result = @source1_result.merge({:option3 => 3})

    @source1 = mock('Source1')
    @source1.expects(:process).with(@recognised_options, {}).returns(@source1_result)

    @source2 = mock('Source2')
    @source2.expects(:process).with(@recognised_options, @source1_result).returns(@source2_result)

    @collector = HammerCLI::Options::OptionCollector.new(@recognised_options, [@source1, @source2])
  end

  describe '#options' do
    it 'returns options without nil values but with NIL values' do
      assert_equal({:option1 => 1, :option3 => 3, :option4 => nil}, @collector.options)
    end
  end

  describe '#all_options' do
    it 'returns all options' do
      assert_equal({:option1 => 1, :option2 => nil, :option3 => 3, :option4 => nil}, @collector.all_options)
    end
  end

  describe '#all_options_raw' do
    it 'returns all options with NIL values untranslated' do
      assert_equal({:option1 => 1, :option2 => nil, :option3 => 3, :option4 => HammerCLI::NilValue}, @collector.all_options_raw)
    end

    it 'can process validations' do
      validator = mock('Validator')
      validator.expects(:process).with(@recognised_options, @source1_result).returns(@source1_result)

      collector = HammerCLI::Options::OptionCollector.new(@recognised_options, [@source1, validator, @source2])

      assert_equal({:option1 => 1, :option2 => nil, :option3 => 3, :option4 => HammerCLI::NilValue}, collector.all_options_raw)
    end
  end
end

Version data entries

37 entries across 37 versions & 1 rubygems

Version Path
hammer_cli-3.14.0 test/unit/options/option_collector_test.rb
hammer_cli-3.13.0 test/unit/options/option_collector_test.rb
hammer_cli-3.12.0 test/unit/options/option_collector_test.rb
hammer_cli-3.10.0 test/unit/options/option_collector_test.rb
hammer_cli-3.9.0 test/unit/options/option_collector_test.rb
hammer_cli-3.8.0 test/unit/options/option_collector_test.rb
hammer_cli-3.7.0 test/unit/options/option_collector_test.rb
hammer_cli-3.5.1 test/unit/options/option_collector_test.rb
hammer_cli-3.6.0 test/unit/options/option_collector_test.rb
hammer_cli-3.5.0 test/unit/options/option_collector_test.rb
hammer_cli-3.4.0 test/unit/options/option_collector_test.rb
hammer_cli-3.3.0 test/unit/options/option_collector_test.rb
hammer_cli-3.2.0 test/unit/options/option_collector_test.rb
hammer_cli-3.1.1 test/unit/options/option_collector_test.rb
hammer_cli-3.0.2 test/unit/options/option_collector_test.rb
hammer_cli-3.1.0 test/unit/options/option_collector_test.rb
hammer_cli-3.0.1 test/unit/options/option_collector_test.rb
hammer_cli-3.0.0 test/unit/options/option_collector_test.rb
hammer_cli-2.5.1 test/unit/options/option_collector_test.rb
hammer_cli-2.5.0 test/unit/options/option_collector_test.rb