summaryrefslogtreecommitdiffstats
path: root/spec/unit/util/command_line_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/unit/util/command_line_spec.rb')
-rwxr-xr-x[-rw-r--r--]spec/unit/util/command_line_spec.rb29
1 files changed, 29 insertions, 0 deletions
diff --git a/spec/unit/util/command_line_spec.rb b/spec/unit/util/command_line_spec.rb
index 7ba965249..98ddb92f6 100644..100755
--- a/spec/unit/util/command_line_spec.rb
+++ b/spec/unit/util/command_line_spec.rb
@@ -6,6 +6,7 @@ Dir.chdir(File.dirname(__FILE__)) { (s = lambda { |f| File.exist?(f) ? require(f
require 'puppet/util/command_line'
describe Puppet::Util::CommandLine do
+ include PuppetSpec::Files
before do
@tty = stub("tty", :tty? => true )
@pipe = stub("pipe", :tty? => false)
@@ -105,4 +106,32 @@ describe Puppet::Util::CommandLine do
end
end
end
+ describe 'when loading commands' do
+ before do
+ @core_apps = %w{describe filebucket kick queue resource agent cert apply doc master}
+ @command_line = Puppet::Util::CommandLine.new("foo", %w{ client --help whatever.pp }, @tty )
+ end
+ it 'should be able to find all existing commands' do
+ @core_apps.each do |command|
+ @command_line.available_subcommands.should include command
+ end
+ end
+ describe 'when multiple paths have applications' do
+ before do
+ @dir=tmpdir('command_line_plugin_test')
+ @appdir="#{@dir}/puppet/application"
+ FileUtils.mkdir_p(@appdir)
+ FileUtils.touch("#{@appdir}/foo.rb")
+ $LOAD_PATH.unshift(@dir) # WARNING: MUST MATCH THE AFTER ACTIONS!
+ end
+ it 'should be able to find commands from both paths' do
+ found = @command_line.available_subcommands
+ found.should include 'foo'
+ @core_apps.each { |cmd| found.should include cmd }
+ end
+ after do
+ $LOAD_PATH.shift # WARNING: MUST MATCH THE BEFORE ACTIONS!
+ end
+ end
+ end
end