Sha256: ba8e23723f9c7df350a0578abbb4803375596f1626e1eaa9c36827a2ecc33bb7

Contents?: true

Size: 1.2 KB

Versions: 7

Compression:

Stored size: 1.2 KB

Contents

require 'test_helper'

require 'chef/knife'
require 'knife-solo/deprecated_command'

class DummyNewCommand < Chef::Knife
  banner "knife dummy_new_command"

  option :foo,
    :long        => '--foo',
    :description => 'Foo option'

  def run
    # calls #new_run so we can be sure this gets called
    new_run
  end

  def new_run
    # dummy
  end
end

class DummyDeprecatedCommand < DummyNewCommand
  include KnifeSolo::DeprecatedCommand
end

class DeprecatedCommandTest < TestCase
  def test_help_warns_about_deprecation
    $stdout.expects(:puts).with(regexp_matches(/deprecated!/))
    assert_exits { command("--help") }
  end

  def test_warns_about_deprecation
    cmd = command
    cmd.ui.expects(:err).with(regexp_matches(/deprecated!/))
    cmd.run
  end

  def test_runs_new_command
    cmd = command
    cmd.ui.stubs(:err)
    cmd.expects(:new_run)
    cmd.run
  end

  def test_includes_options_from_new_command
    assert DummyDeprecatedCommand.options.include?(:foo)
  end

  def test_loads_dependencies_from_new_command
    DummyNewCommand.expects(:load_deps)
    DummyDeprecatedCommand.load_deps
  end

  def command(*args)
    DummyDeprecatedCommand.load_deps
    DummyDeprecatedCommand.new(args)
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
knife-solo-0.4.3 test/deprecated_command_test.rb
knife-solo-0.4.2 test/deprecated_command_test.rb
knife-solo-0.4.1 test/deprecated_command_test.rb
knife-solo-0.4.0 test/deprecated_command_test.rb
knife-solo-0.3.0 test/deprecated_command_test.rb
knife-solo-0.3.0.pre5 test/deprecated_command_test.rb
knife-solo-0.3.0.pre4 test/deprecated_command_test.rb