Sha256: 3049601572bf3f8826d3d75c1037953012d5ffad4632c35569fee656474c4cd7

Contents?: true

Size: 1.47 KB

Versions: 1

Compression:

Stored size: 1.47 KB

Contents

# encoding: utf-8

module Cri
  class BasicHelpTestCase < Cri::TestCase
    def test_run_without_supercommand
      cmd = Cri::Command.new_basic_help

      assert_raises Cri::NoHelpAvailableError do
        cmd.run([])
      end
    end

    def test_run_with_supercommand
      cmd = Cri::Command.define do
        name 'meh'
      end

      help_cmd = Cri::Command.new_basic_help
      cmd.add_command(help_cmd)

      help_cmd.run([])
    end

    def test_run_with_chain_of_commands
      cmd = Cri::Command.define do
        name 'root'
        summary 'I am root!'

        subcommand do
          name 'foo'
          summary 'I am foo!'

          subcommand do
            name 'subsubby'
            summary 'I am subsubby!'
          end
        end
      end

      help_cmd = Cri::Command.new_basic_help
      cmd.add_command(help_cmd)

      # Simple call
      stdout, stderr = capture_io_while do
        help_cmd.run(['foo'])
      end
      assert_match(/I am foo!/m, stdout)
      assert_equal('', stderr)

      # Subcommand
      stdout, stderr = capture_io_while do
        help_cmd.run(%w(foo subsubby))
      end
      assert_match(/I am subsubby!/m, stdout)
      assert_equal('', stderr)

      # Non-existing subcommand
      stdout, stderr = capture_io_while do
        assert_raises SystemExit do
          help_cmd.run(%w(foo mysterycmd))
        end
      end
      assert_equal '', stdout
      assert_match(/foo: unknown command 'mysterycmd'/, stderr)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
cri-2.7.0 test/test_basic_help.rb