class OptimistTest

Public Instance Methods

parser(&block) click to toggle source
# File test/optimist_test.rb, line 8
def parser(&block)
  Optimist::Parser.new(&block)
end
setup() click to toggle source
# File test/optimist_test.rb, line 4
def setup
  Optimist.send(:instance_variable_set, "@last_parser", nil)
end
test_die() click to toggle source
# File test/optimist_test.rb, line 45
def test_die
  assert_stderr(/Error: issue with parsing/) do
    assert_system_exit(-1) do
      Optimist.options []
      Optimist.die "issue with parsing"
    end
  end
end
test_die_custom_error_code() click to toggle source
# File test/optimist_test.rb, line 54
def test_die_custom_error_code
  assert_stderr(/Error: issue with parsing/) do
    assert_system_exit(5) do
      Optimist.options []
      Optimist.die "issue with parsing", nil, 5
    end
  end
end
test_die_custom_error_code_two_args() click to toggle source
# File test/optimist_test.rb, line 63
def test_die_custom_error_code_two_args
  assert_stderr(/Error: issue with parsing/) do
    assert_system_exit(5) do
      Optimist.options []
      Optimist.die "issue with parsing", 5
    end
  end
end
test_die_without_options_ever_run() click to toggle source
# File test/optimist_test.rb, line 41
def test_die_without_options_ever_run
  assert_raises(ArgumentError) { Optimist.die 'hello' }
end
test_educate() click to toggle source
# File test/optimist_test.rb, line 76
def test_educate
  assert_stdout(/Show this message/) do
    assert_system_exit(0) do
      Optimist.options []
      Optimist.educate
    end
  end
end
test_educate_without_options_ever_run() click to toggle source
# File test/optimist_test.rb, line 72
def test_educate_without_options_ever_run
  assert_raises(ArgumentError) { Optimist.educate }
end
test_options() click to toggle source
# File test/optimist_test.rb, line 12
def test_options
  opts = Optimist.options %w(-f) do
    opt :f
  end

  assert_equal true, opts[:f]
end
test_options_die_default() click to toggle source
# File test/optimist_test.rb, line 20
def test_options_die_default
  assert_stderr(/Error: unknown argument.*Try --help/m) do
    assert_system_exit(-1) do
      Optimist.options %w(-f) do
        opt :x
      end
    end
  end
end
test_options_die_educate_on_error() click to toggle source
# File test/optimist_test.rb, line 30
def test_options_die_educate_on_error
  assert_stderr(/Error: unknown argument.*Options/m) do
    assert_system_exit(-1) do
      Optimist.options %w(-f) do
        opt :x
        educate_on_error
      end
    end
  end
end
test_with_standard_exception_die() click to toggle source
# File test/optimist_test.rb, line 147
def test_with_standard_exception_die
  assert_stderr(/Error: cl error/) do
    assert_system_exit(-1) do
      p = parser
      Optimist.with_standard_exception_handling(p) do
        p.die 'cl error'
      end
    end
  end
end
test_with_standard_exception_die_custom_error() click to toggle source
# File test/optimist_test.rb, line 158
def test_with_standard_exception_die_custom_error
  assert_stderr(/Error: cl error/) do
    assert_system_exit(3) do
      p = parser
      Optimist.with_standard_exception_handling(p) do
        p.die 'cl error', nil, 3
      end
    end
  end
end
test_with_standard_exception_die_exception() click to toggle source
# File test/optimist_test.rb, line 125
def test_with_standard_exception_die_exception
  assert_stderr(/Error: cl error/) do
    assert_system_exit(-1) do
      p = parser
      Optimist.with_standard_exception_handling(p) do
        raise ::Optimist::CommandlineError.new('cl error')
      end
    end
  end
end
test_with_standard_exception_die_exception_custom_error() click to toggle source
# File test/optimist_test.rb, line 136
def test_with_standard_exception_die_exception_custom_error
  assert_stderr(/Error: cl error/) do
    assert_system_exit(5) do
      p = parser
      Optimist.with_standard_exception_handling(p) do
        raise ::Optimist::CommandlineError.new('cl error', 5)
      end
    end
  end
end
test_with_standard_exception_help_needed() click to toggle source
# File test/optimist_test.rb, line 169
def test_with_standard_exception_help_needed
  assert_stdout(/Options/) do
    assert_system_exit(0) do
      p = parser
      Optimist.with_standard_exception_handling(p) do
        raise Optimist::HelpNeeded
      end
    end
  end
end
test_with_standard_exception_help_needed_flag() click to toggle source
# File test/optimist_test.rb, line 180
def test_with_standard_exception_help_needed_flag
  assert_stdout(/Options/) do
    assert_system_exit(0) do
      p = parser
      Optimist.with_standard_exception_handling(p) do
        p.parse(%w(-h))
      end
    end
  end
end
test_with_standard_exception_options() click to toggle source
# File test/optimist_test.rb, line 85
def test_with_standard_exception_options
  p = parser do
    opt :f
  end

  opts = Optimist::with_standard_exception_handling p do
    p.parse %w(-f)
  end

  assert_equal true, opts[:f]
end
test_with_standard_exception_version_exception() click to toggle source
# File test/optimist_test.rb, line 97
def test_with_standard_exception_version_exception
  p = parser do
    version "5.5"
  end

  assert_stdout(/5\.5/) do
    assert_system_exit(0) do
      Optimist::with_standard_exception_handling p do
        raise Optimist::VersionNeeded
      end
    end
  end
end
test_with_standard_exception_version_flag() click to toggle source
# File test/optimist_test.rb, line 111
def test_with_standard_exception_version_flag
  p = parser do
    version "5.5"
  end

  assert_stdout(/5\.5/) do
    assert_system_exit(0) do
      Optimist::with_standard_exception_handling p do
        p.parse %w(-v)
      end
    end
  end
end