Files
boxen/test/boxen_cli_test.rb
Yossef Mendelssohn 535a9faf5f Refactor CLI#run tests
Now I can just stub `CLI#process` instead of caring what happens inside
it.

cf f0a9ad99e0
2012-10-05 15:50:51 -04:00

105 lines
2.4 KiB
Ruby

require "boxen/test"
require "boxen/cli"
class BoxenCLITest < Boxen::Test
def setup
@config = Boxen::Config.new
@flags = Boxen::Flags.new
@cli = Boxen::CLI.new(@config, @flags)
end
def test_initialize
config = Boxen::Config.new
flags = Boxen::Flags.new
cli = Boxen::CLI.new config, flags
assert_equal config, cli.config
assert_equal flags, cli.flags
assert_equal config, cli.puppet.config
assert_equal config, cli.reporter.config
assert_equal config, cli.reporter.checkout.config
assert_equal cli.checkout, cli.reporter.checkout
assert_equal cli.puppet, cli.reporter.puppet
end
def test_issues?
@config.stealth = true
@config.pretend = true
@cli.checkout.stubs(:master?).returns(false)
assert !@cli.issues?
@config.stealth = false
@config.pretend = true
@cli.checkout.stubs(:master?).returns(false)
assert !@cli.issues?
@config.stealth = true
@config.pretend = false
@cli.checkout.stubs(:master?).returns(false)
assert !@cli.issues?
@config.stealth = true
@config.pretend = true
@cli.checkout.stubs(:master?).returns(true)
assert !@cli.issues?
@config.stealth = false
@config.pretend = true
@cli.checkout.stubs(:master?).returns(true)
assert !@cli.issues?
@config.stealth = true
@config.pretend = false
@cli.checkout.stubs(:master?).returns(true)
assert !@cli.issues?
@config.stealth = false
@config.pretend = false
@cli.checkout.stubs(:master?).returns(true)
assert @cli.issues?
end
def test_report_failure
@cli.stubs(:issues?).returns(true)
@cli.stubs(:process).returns(1)
@cli.stubs(:warn)
@cli.reporter.expects(:record_failure)
@cli.reporter.expects(:close_failures).never
@cli.run
end
def test_run_success
@cli.stubs(:issues?).returns(true)
@cli.stubs(:process).returns(0)
@cli.reporter.expects(:record_failure).never
@cli.reporter.expects(:close_failures)
@cli.run
end
def test_run_failure_no_issues
@cli.stubs(:issues?).returns(false)
@cli.stubs(:process).returns(1)
@cli.reporter.expects(:record_failure).never
@cli.reporter.expects(:close_failures).never
@cli.run
end
def test_run_success_no_issues
@cli.stubs(:issues?).returns(false)
@cli.stubs(:process).returns(0)
@cli.reporter.expects(:record_failure).never
@cli.reporter.expects(:close_failures).never
@cli.run
end
end