Sha256: 69819cf296e98a438469fa69014002446a396d7968eed8025493e80e3ab396bb

Contents?: true

Size: 1.14 KB

Versions: 3

Compression:

Stored size: 1.14 KB

Contents

require File.join(File.dirname(__FILE__), '../test_helper')

# require 'hammer_cli/options/option_definition'

describe HammerCLI::Options::OptionDefinition do

  class FakeFormatter < HammerCLI::Options::Normalizers::AbstractNormalizer
    def format(val)
      ">>>#{val}<<<"
    end
  end

  class TestOptionFormattersCmd < HammerCLI::AbstractCommand
    option "--test-format", "TEST_FORMAT", "Test option with a formatter",
      :format => FakeFormatter.new,
      :default => "A"
  end

  describe "formatters" do

    it "should use formatter to format a default value" do
      opt = TestOptionFormattersCmd.find_option("--test-format")

      opt_instance = opt.of(TestOptionFormattersCmd.new([]))
      opt_instance.read.must_equal '>>>A<<<'
    end

    it "should use formatter as a conversion block" do
      opt = TestOptionFormattersCmd.find_option("--test-format")

      opt_instance = opt.of(TestOptionFormattersCmd.new([]))
      # clamp api changed in 0.6.2
      if opt_instance.respond_to? :write 
        opt_instance.write('B')
      else
        opt_instance.take('B')
      end
      opt_instance.read.must_equal '>>>B<<<'
    end
  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
hammer_cli-0.0.12 test/unit/options/option_definition_test.rb
hammer_cli-0.0.11 test/unit/options/option_definition_test.rb
hammer_cli-0.0.10 test/unit/options/option_definition_test.rb