Vagrant::Commands moved to instance methods on the environment rather than class methods
This commit is contained in:
parent
704f9751b1
commit
35e9fa53d4
|
@ -26,7 +26,7 @@ EOS
|
||||||
|
|
||||||
run do |command|
|
run do |command|
|
||||||
begin
|
begin
|
||||||
Vagrant::Commands.box(command.argv)
|
Vagrant::Commands.execute(:box, command.argv)
|
||||||
rescue ArgumentError
|
rescue ArgumentError
|
||||||
educate
|
educate
|
||||||
end
|
end
|
||||||
|
|
|
@ -22,6 +22,6 @@ Destroys the vagrant environment.
|
||||||
EOS
|
EOS
|
||||||
|
|
||||||
run do |command|
|
run do |command|
|
||||||
Vagrant::Commands.down
|
Vagrant::Commands.execute(:down)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -23,6 +23,6 @@ of pulling the power on your computer.
|
||||||
EOS
|
EOS
|
||||||
|
|
||||||
run do |command|
|
run do |command|
|
||||||
Vagrant::Commands.halt
|
Vagrant::Commands.execute(:halt)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -24,6 +24,6 @@ EOS
|
||||||
opt :include, "files to include in the package", :type => :strings
|
opt :include, "files to include in the package", :type => :strings
|
||||||
|
|
||||||
run do |command|
|
run do |command|
|
||||||
Vagrant::Commands.package(command.argv[0], command.opts[:include])
|
Vagrant::Commands.execute(:package, command.argv[0], command.opts[:include])
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -24,6 +24,6 @@ the VM, and reruns the chef recipes.
|
||||||
EOS
|
EOS
|
||||||
|
|
||||||
run do |command|
|
run do |command|
|
||||||
Vagrant::Commands.reload
|
Vagrant::Commands.execute(:reload)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -22,6 +22,6 @@ Resumes the vagrant environment.
|
||||||
EOS
|
EOS
|
||||||
|
|
||||||
run do |command|
|
run do |command|
|
||||||
Vagrant::Commands.resume
|
Vagrant::Commands.execute(:resume)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -22,6 +22,6 @@ Opens an SSH connection into the created VM.
|
||||||
EOS
|
EOS
|
||||||
|
|
||||||
run do |command|
|
run do |command|
|
||||||
Vagrant::Commands.ssh
|
Vagrant::Commands.execute(:ssh)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -24,6 +24,6 @@ etc.
|
||||||
EOS
|
EOS
|
||||||
|
|
||||||
run do |command|
|
run do |command|
|
||||||
Vagrant::Commands.status
|
Vagrant::Commands.execute(:status)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -22,6 +22,6 @@ Suspends the vagrant environment.
|
||||||
EOS
|
EOS
|
||||||
|
|
||||||
run do |command|
|
run do |command|
|
||||||
Vagrant::Commands.suspend
|
Vagrant::Commands.execute(:suspend)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -24,6 +24,6 @@ already running.
|
||||||
EOS
|
EOS
|
||||||
|
|
||||||
run do |command|
|
run do |command|
|
||||||
Vagrant::Commands.up
|
Vagrant::Commands.execute(:up)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -4,7 +4,191 @@ module Vagrant
|
||||||
# documentation and also takes the commands out of some of
|
# documentation and also takes the commands out of some of
|
||||||
# the other classes.
|
# the other classes.
|
||||||
class Commands
|
class Commands
|
||||||
extend Vagrant::Util
|
include Vagrant::Util
|
||||||
|
|
||||||
|
# The environment which these commands will act on
|
||||||
|
attr_reader :env
|
||||||
|
|
||||||
|
# Initialize a new {Commands} instance for the given environment.
|
||||||
|
# This merely prepares the {env} variable.
|
||||||
|
def initialize(env)
|
||||||
|
@env = env
|
||||||
|
end
|
||||||
|
|
||||||
|
# Bring up a vagrant instance. This handles everything from importing
|
||||||
|
# the base VM, setting up shared folders, forwarded ports, etc to
|
||||||
|
# provisioning the instance with chef. {up} also starts the instance,
|
||||||
|
# running it in the background.
|
||||||
|
def up
|
||||||
|
if env.vm
|
||||||
|
logger.info "VM already created. Starting VM if its not already running..."
|
||||||
|
env.vm.start
|
||||||
|
else
|
||||||
|
env.require_box
|
||||||
|
env.create_vm.execute!(Actions::VM::Up)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Tear down a vagrant instance. This not only shuts down the instance
|
||||||
|
# (if its running), but also deletes it from the system, including the
|
||||||
|
# hard disks associated with it.
|
||||||
|
#
|
||||||
|
# This command requires that an instance already be brought up with
|
||||||
|
# `vagrant up`.
|
||||||
|
def down
|
||||||
|
env.require_persisted_vm
|
||||||
|
env.vm.destroy
|
||||||
|
end
|
||||||
|
|
||||||
|
# Reload the environment. This is almost equivalent to the {up} command
|
||||||
|
# except that it doesn't import the VM and do the initialize bootstrapping
|
||||||
|
# of the instance. Instead, it forces a shutdown (if its running) of the
|
||||||
|
# VM, updates the metadata (shared folders, forwarded ports), restarts
|
||||||
|
# the VM, and then reruns the provisioning if enabled.
|
||||||
|
def reload
|
||||||
|
env.require_persisted_vm
|
||||||
|
env.vm.execute!(Actions::VM::Reload)
|
||||||
|
end
|
||||||
|
|
||||||
|
# SSH into the vagrant instance. This will setup an SSH connection into
|
||||||
|
# the vagrant instance, replacing the running ruby process with the SSH
|
||||||
|
# connection.
|
||||||
|
#
|
||||||
|
# This command requires that an instance already be brought up with
|
||||||
|
# `vagrant up`.
|
||||||
|
def ssh
|
||||||
|
env.require_persisted_vm
|
||||||
|
env.ssh.connect
|
||||||
|
end
|
||||||
|
|
||||||
|
# Halts a running vagrant instance. This forcibly halts the instance;
|
||||||
|
# it is the equivalent of pulling the power on a machine. The instance
|
||||||
|
# can be restarted again with {up}.
|
||||||
|
#
|
||||||
|
# This command requires than an instance already be brought up with
|
||||||
|
# `vagrant up`.
|
||||||
|
def halt
|
||||||
|
env.require_persisted_vm
|
||||||
|
env.vm.execute!(Actions::VM::Halt)
|
||||||
|
end
|
||||||
|
|
||||||
|
# Suspend a running vagrant instance. This suspends the instance, saving
|
||||||
|
# the state of the VM and "pausing" it. The instance can be resumed
|
||||||
|
# again with {resume}.
|
||||||
|
#
|
||||||
|
# This command requires that an instance already be brought up with
|
||||||
|
# `vagrant up`.
|
||||||
|
def suspend
|
||||||
|
env.require_persisted_vm
|
||||||
|
env.vm.suspend
|
||||||
|
end
|
||||||
|
|
||||||
|
# Resume a running vagrant instance. This resumes an already suspended
|
||||||
|
# instance (from {suspend}).
|
||||||
|
#
|
||||||
|
# This command requires that an instance already be brought up with
|
||||||
|
# `vagrant up`.
|
||||||
|
def resume
|
||||||
|
env.require_persisted_vm
|
||||||
|
env.vm.resume
|
||||||
|
end
|
||||||
|
|
||||||
|
# Export and package the current vm
|
||||||
|
#
|
||||||
|
# This command requires that an instance be powered off
|
||||||
|
def package(out_path=nil, include_files=[])
|
||||||
|
env.require_persisted_vm
|
||||||
|
error_and_exit(:vm_power_off_to_package) unless env.vm.powered_off?
|
||||||
|
|
||||||
|
env.vm.package(out_path, include_files)
|
||||||
|
end
|
||||||
|
|
||||||
|
# Manages the `vagrant box` command, allowing the user to add
|
||||||
|
# and remove boxes. This single command, given an array, determines
|
||||||
|
# which action to take and calls the respective action method
|
||||||
|
# (see {box_add} and {box_remove})
|
||||||
|
def box(argv)
|
||||||
|
sub_commands = ["list", "add", "remove"]
|
||||||
|
|
||||||
|
if !sub_commands.include?(argv[0])
|
||||||
|
error_and_exit(:command_box_invalid)
|
||||||
|
end
|
||||||
|
|
||||||
|
send("box_#{argv[0]}", env, *argv[1..-1])
|
||||||
|
end
|
||||||
|
|
||||||
|
# Lists all added boxes
|
||||||
|
def box_list(env)
|
||||||
|
boxes = Box.all(env).sort
|
||||||
|
|
||||||
|
wrap_output do
|
||||||
|
if !boxes.empty?
|
||||||
|
puts "Installed Vagrant Boxes:\n\n"
|
||||||
|
boxes.each do |box|
|
||||||
|
Kernel.puts box
|
||||||
|
end
|
||||||
|
else
|
||||||
|
Kernel.puts "No Vagrant Boxes Added!"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Adds a box to the local filesystem, given a URI.
|
||||||
|
def box_add(env, name, path)
|
||||||
|
Box.add(env, name, path)
|
||||||
|
end
|
||||||
|
|
||||||
|
# Removes a box.
|
||||||
|
def box_remove(env, name)
|
||||||
|
box = Box.find(env, name)
|
||||||
|
if box.nil?
|
||||||
|
error_and_exit(:box_remove_doesnt_exist)
|
||||||
|
return # for tests
|
||||||
|
end
|
||||||
|
|
||||||
|
box.destroy
|
||||||
|
end
|
||||||
|
|
||||||
|
# Outputs the status of the current environment. This command outputs
|
||||||
|
# useful information such as whether or not the environment is created
|
||||||
|
# and if its running, suspended, etc.
|
||||||
|
def status
|
||||||
|
wrap_output do
|
||||||
|
if !env.vm
|
||||||
|
puts <<-msg
|
||||||
|
The environment has not yet been created. Run `vagrant up` to create the
|
||||||
|
environment.
|
||||||
|
msg
|
||||||
|
else
|
||||||
|
additional_msg = ""
|
||||||
|
if env.vm.vm.running?
|
||||||
|
additional_msg = <<-msg
|
||||||
|
To stop this VM, you can run `vagrant halt` to shut it down forcefully,
|
||||||
|
or you can run `vagrant suspend` to simply suspend the virtual machine.
|
||||||
|
In either case, to restart it again, simply run a `vagrant up`.
|
||||||
|
msg
|
||||||
|
elsif env.vm.vm.saved?
|
||||||
|
additional_msg = <<-msg
|
||||||
|
To resume this VM, simply run `vagrant up`.
|
||||||
|
msg
|
||||||
|
elsif env.vm.vm.powered_off?
|
||||||
|
additional_msg = <<-msg
|
||||||
|
To restart this VM, simply run `vagrant up`.
|
||||||
|
msg
|
||||||
|
end
|
||||||
|
|
||||||
|
if !additional_msg.empty?
|
||||||
|
additional_msg.chomp!
|
||||||
|
additional_msg = "\n\n#{additional_msg}"
|
||||||
|
end
|
||||||
|
|
||||||
|
puts <<-msg
|
||||||
|
The environment has been created. The status of the current environment's
|
||||||
|
virtual machine is: "#{env.vm.vm.state}."#{additional_msg}
|
||||||
|
msg
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
class << self
|
class << self
|
||||||
# Initializes a directory for use with vagrant. This command copies an
|
# Initializes a directory for use with vagrant. This command copies an
|
||||||
|
@ -24,192 +208,11 @@ module Vagrant
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# Outputs the status of the current environment. This command outputs
|
# Runs a command in the current environment by loading the environment
|
||||||
# useful information such as whether or not the environment is created
|
# of the current working directory prior to executing.
|
||||||
# and if its running, suspended, etc.
|
def execute(command, *args)
|
||||||
def status
|
|
||||||
env = Environment.load!
|
env = Environment.load!
|
||||||
|
env.commands.send(command, *args)
|
||||||
wrap_output do
|
|
||||||
if !env.vm
|
|
||||||
puts <<-msg
|
|
||||||
The environment has not yet been created. Run `vagrant up` to create the
|
|
||||||
environment.
|
|
||||||
msg
|
|
||||||
else
|
|
||||||
additional_msg = ""
|
|
||||||
if env.vm.vm.running?
|
|
||||||
additional_msg = <<-msg
|
|
||||||
To stop this VM, you can run `vagrant halt` to shut it down forcefully,
|
|
||||||
or you can run `vagrant suspend` to simply suspend the virtual machine.
|
|
||||||
In either case, to restart it again, simply run a `vagrant up`.
|
|
||||||
msg
|
|
||||||
elsif env.vm.vm.saved?
|
|
||||||
additional_msg = <<-msg
|
|
||||||
To resume this VM, simply run `vagrant up`.
|
|
||||||
msg
|
|
||||||
elsif env.vm.vm.powered_off?
|
|
||||||
additional_msg = <<-msg
|
|
||||||
To restart this VM, simply run `vagrant up`.
|
|
||||||
msg
|
|
||||||
end
|
|
||||||
|
|
||||||
if !additional_msg.empty?
|
|
||||||
additional_msg.chomp!
|
|
||||||
additional_msg = "\n\n#{additional_msg}"
|
|
||||||
end
|
|
||||||
|
|
||||||
puts <<-msg
|
|
||||||
The environment has been created. The status of the current environment's
|
|
||||||
virtual machine is: "#{env.vm.vm.state}."#{additional_msg}
|
|
||||||
msg
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
# Bring up a vagrant instance. This handles everything from importing
|
|
||||||
# the base VM, setting up shared folders, forwarded ports, etc to
|
|
||||||
# provisioning the instance with chef. {up} also starts the instance,
|
|
||||||
# running it in the background.
|
|
||||||
def up
|
|
||||||
env = Environment.load!
|
|
||||||
|
|
||||||
if env.vm
|
|
||||||
logger.info "VM already created. Starting VM if its not already running..."
|
|
||||||
env.vm.start
|
|
||||||
else
|
|
||||||
env.require_box
|
|
||||||
env.create_vm.execute!(Actions::VM::Up)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
# Tear down a vagrant instance. This not only shuts down the instance
|
|
||||||
# (if its running), but also deletes it from the system, including the
|
|
||||||
# hard disks associated with it.
|
|
||||||
#
|
|
||||||
# This command requires that an instance already be brought up with
|
|
||||||
# `vagrant up`.
|
|
||||||
def down
|
|
||||||
env = Environment.load!
|
|
||||||
env.require_persisted_vm
|
|
||||||
env.vm.destroy
|
|
||||||
end
|
|
||||||
|
|
||||||
# Reload the environment. This is almost equivalent to the {up} command
|
|
||||||
# except that it doesn't import the VM and do the initialize bootstrapping
|
|
||||||
# of the instance. Instead, it forces a shutdown (if its running) of the
|
|
||||||
# VM, updates the metadata (shared folders, forwarded ports), restarts
|
|
||||||
# the VM, and then reruns the provisioning if enabled.
|
|
||||||
def reload
|
|
||||||
env = Environment.load!
|
|
||||||
env.require_persisted_vm
|
|
||||||
env.vm.execute!(Actions::VM::Reload)
|
|
||||||
end
|
|
||||||
|
|
||||||
# SSH into the vagrant instance. This will setup an SSH connection into
|
|
||||||
# the vagrant instance, replacing the running ruby process with the SSH
|
|
||||||
# connection.
|
|
||||||
#
|
|
||||||
# This command requires that an instance already be brought up with
|
|
||||||
# `vagrant up`.
|
|
||||||
def ssh
|
|
||||||
env = Environment.load!
|
|
||||||
env.require_persisted_vm
|
|
||||||
env.ssh.connect
|
|
||||||
end
|
|
||||||
|
|
||||||
# Halts a running vagrant instance. This forcibly halts the instance;
|
|
||||||
# it is the equivalent of pulling the power on a machine. The instance
|
|
||||||
# can be restarted again with {up}.
|
|
||||||
#
|
|
||||||
# This command requires than an instance already be brought up with
|
|
||||||
# `vagrant up`.
|
|
||||||
def halt
|
|
||||||
env = Environment.load!
|
|
||||||
env.require_persisted_vm
|
|
||||||
env.vm.execute!(Actions::VM::Halt)
|
|
||||||
end
|
|
||||||
|
|
||||||
# Suspend a running vagrant instance. This suspends the instance, saving
|
|
||||||
# the state of the VM and "pausing" it. The instance can be resumed
|
|
||||||
# again with {resume}.
|
|
||||||
#
|
|
||||||
# This command requires that an instance already be brought up with
|
|
||||||
# `vagrant up`.
|
|
||||||
def suspend
|
|
||||||
env = Environment.load!
|
|
||||||
env.require_persisted_vm
|
|
||||||
env.vm.suspend
|
|
||||||
end
|
|
||||||
|
|
||||||
# Resume a running vagrant instance. This resumes an already suspended
|
|
||||||
# instance (from {suspend}).
|
|
||||||
#
|
|
||||||
# This command requires that an instance already be brought up with
|
|
||||||
# `vagrant up`.
|
|
||||||
def resume
|
|
||||||
env = Environment.load!
|
|
||||||
env.require_persisted_vm
|
|
||||||
env.vm.resume
|
|
||||||
end
|
|
||||||
|
|
||||||
# Export and package the current vm
|
|
||||||
#
|
|
||||||
# This command requires that an instance be powered off
|
|
||||||
def package(out_path=nil, include_files=[])
|
|
||||||
env = Environment.load!
|
|
||||||
env.require_persisted_vm
|
|
||||||
error_and_exit(:vm_power_off_to_package) unless env.vm.powered_off?
|
|
||||||
|
|
||||||
env.vm.package(out_path, include_files)
|
|
||||||
end
|
|
||||||
|
|
||||||
# Manages the `vagrant box` command, allowing the user to add
|
|
||||||
# and remove boxes. This single command, given an array, determines
|
|
||||||
# which action to take and calls the respective action method
|
|
||||||
# (see {box_add} and {box_remove})
|
|
||||||
def box(argv)
|
|
||||||
env = Environment.load!
|
|
||||||
|
|
||||||
sub_commands = ["list", "add", "remove"]
|
|
||||||
|
|
||||||
if !sub_commands.include?(argv[0])
|
|
||||||
error_and_exit(:command_box_invalid)
|
|
||||||
end
|
|
||||||
|
|
||||||
send("box_#{argv[0]}", env, *argv[1..-1])
|
|
||||||
end
|
|
||||||
|
|
||||||
# Lists all added boxes
|
|
||||||
def box_list(env)
|
|
||||||
boxes = Box.all(env).sort
|
|
||||||
|
|
||||||
wrap_output do
|
|
||||||
if !boxes.empty?
|
|
||||||
puts "Installed Vagrant Boxes:\n\n"
|
|
||||||
boxes.each do |box|
|
|
||||||
puts box
|
|
||||||
end
|
|
||||||
else
|
|
||||||
puts "No Vagrant Boxes Added!"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
# Adds a box to the local filesystem, given a URI.
|
|
||||||
def box_add(env, name, path)
|
|
||||||
Box.add(env, name, path)
|
|
||||||
end
|
|
||||||
|
|
||||||
# Removes a box.
|
|
||||||
def box_remove(env, name)
|
|
||||||
box = Box.find(env, name)
|
|
||||||
if box.nil?
|
|
||||||
error_and_exit(:box_remove_doesnt_exist)
|
|
||||||
return # for tests
|
|
||||||
end
|
|
||||||
|
|
||||||
box.destroy
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -15,6 +15,7 @@ module Vagrant
|
||||||
attr_reader :vm
|
attr_reader :vm
|
||||||
attr_reader :ssh
|
attr_reader :ssh
|
||||||
attr_reader :active_list
|
attr_reader :active_list
|
||||||
|
attr_reader :commands
|
||||||
|
|
||||||
#---------------------------------------------------------------
|
#---------------------------------------------------------------
|
||||||
# Class Methods
|
# Class Methods
|
||||||
|
@ -98,6 +99,7 @@ module Vagrant
|
||||||
load_vm!
|
load_vm!
|
||||||
load_ssh!
|
load_ssh!
|
||||||
load_active_list!
|
load_active_list!
|
||||||
|
load_commands!
|
||||||
self
|
self
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -191,6 +193,13 @@ module Vagrant
|
||||||
@active_list = ActiveList.new(self)
|
@active_list = ActiveList.new(self)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Loads the instance of {Commands} for this environment. This allows
|
||||||
|
# users of the instance to run commands such as "up" "down" etc. in
|
||||||
|
# the context of this environment.
|
||||||
|
def load_commands!
|
||||||
|
@commands = Commands.new(self)
|
||||||
|
end
|
||||||
|
|
||||||
#---------------------------------------------------------------
|
#---------------------------------------------------------------
|
||||||
# Methods to manage VM
|
# Methods to manage VM
|
||||||
#---------------------------------------------------------------
|
#---------------------------------------------------------------
|
||||||
|
|
|
@ -11,315 +11,297 @@ class CommandsTest < Test::Unit::TestCase
|
||||||
Vagrant::Environment.stubs(:load!).returns(@env)
|
Vagrant::Environment.stubs(:load!).returns(@env)
|
||||||
end
|
end
|
||||||
|
|
||||||
context "init" do
|
context "instance methods" do
|
||||||
setup do
|
setup do
|
||||||
@file = mock("file")
|
@commands = Vagrant::Commands.new(@env)
|
||||||
@file.stubs(:write)
|
|
||||||
File.stubs(:open).yields(@file)
|
|
||||||
@rootfile_path = File.join(Dir.pwd, Vagrant::Environment::ROOTFILE_NAME)
|
|
||||||
|
|
||||||
Vagrant::Util::TemplateRenderer.stubs(:render)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
should "error and exit if a rootfile already exists" do
|
context "initialization" do
|
||||||
File.expects(:exist?).with(@rootfile_path).returns(true)
|
should "set up the environment variable" do
|
||||||
Vagrant::Commands.expects(:error_and_exit).with(:rootfile_already_exists).once
|
env = mock("env")
|
||||||
Vagrant::Commands.init
|
command = Vagrant::Commands.new(env)
|
||||||
end
|
assert_equal env, command.env
|
||||||
|
|
||||||
should "write to the rootfile path using the template renderer" do
|
|
||||||
result = "foo"
|
|
||||||
Vagrant::Util::TemplateRenderer.expects(:render).returns(result).once
|
|
||||||
@file.expects(:write).with(result).once
|
|
||||||
File.expects(:open).with(@rootfile_path, 'w+').yields(@file)
|
|
||||||
|
|
||||||
Vagrant::Commands.init
|
|
||||||
end
|
|
||||||
|
|
||||||
should "use the given base box if given" do
|
|
||||||
box = "zooo"
|
|
||||||
Vagrant::Util::TemplateRenderer.expects(:render).with(Vagrant::Environment::ROOTFILE_NAME, :default_box => box)
|
|
||||||
Vagrant::Commands.init(box)
|
|
||||||
end
|
|
||||||
|
|
||||||
should "use the default `base` if no box is given" do
|
|
||||||
Vagrant::Util::TemplateRenderer.expects(:render).with(Vagrant::Environment::ROOTFILE_NAME, :default_box => "base")
|
|
||||||
Vagrant::Commands.init
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
context "up" do
|
|
||||||
setup do
|
|
||||||
@new_vm = mock("vm")
|
|
||||||
@new_vm.stubs(:execute!)
|
|
||||||
|
|
||||||
@env.stubs(:vm).returns(nil)
|
|
||||||
@env.stubs(:require_box)
|
|
||||||
@env.stubs(:create_vm).returns(@new_vm)
|
|
||||||
end
|
|
||||||
|
|
||||||
should "require load the environment" do
|
|
||||||
Vagrant::Environment.expects(:load!).once.returns(@env)
|
|
||||||
Vagrant::Commands.up
|
|
||||||
end
|
|
||||||
|
|
||||||
should "require a box" do
|
|
||||||
@env.expects(:require_box).once
|
|
||||||
Vagrant::Commands.up
|
|
||||||
end
|
|
||||||
|
|
||||||
should "call the up action on VM if it doesn't exist" do
|
|
||||||
@new_vm.expects(:execute!).with(Vagrant::Actions::VM::Up).once
|
|
||||||
Vagrant::Commands.up
|
|
||||||
end
|
|
||||||
|
|
||||||
should "call start on the persisted vm if it exists" do
|
|
||||||
@env.stubs(:vm).returns(@persisted_vm)
|
|
||||||
@persisted_vm.expects(:start).once
|
|
||||||
@env.expects(:create_vm).never
|
|
||||||
Vagrant::Commands.up
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
context "down" do
|
|
||||||
setup do
|
|
||||||
@persisted_vm.stubs(:destroy)
|
|
||||||
end
|
|
||||||
|
|
||||||
should "load the current environment" do
|
|
||||||
Vagrant::Environment.expects(:load!).once.returns(@env)
|
|
||||||
Vagrant::Commands.down
|
|
||||||
end
|
|
||||||
|
|
||||||
should "require a persisted VM" do
|
|
||||||
@env.expects(:require_persisted_vm).once
|
|
||||||
Vagrant::Commands.down
|
|
||||||
end
|
|
||||||
|
|
||||||
should "destroy the persisted VM and the VM image" do
|
|
||||||
@persisted_vm.expects(:destroy).once
|
|
||||||
Vagrant::Commands.down
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
context "reload" do
|
|
||||||
should "load the current environment" do
|
|
||||||
Vagrant::Environment.expects(:load!).once.returns(@env)
|
|
||||||
Vagrant::Commands.reload
|
|
||||||
end
|
|
||||||
|
|
||||||
should "require a persisted VM" do
|
|
||||||
@env.expects(:require_persisted_vm).once
|
|
||||||
Vagrant::Commands.reload
|
|
||||||
end
|
|
||||||
|
|
||||||
should "call the `reload` action on the VM" do
|
|
||||||
@persisted_vm.expects(:execute!).with(Vagrant::Actions::VM::Reload).once
|
|
||||||
Vagrant::Commands.reload
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
context "ssh" do
|
|
||||||
setup do
|
|
||||||
@env.ssh.stubs(:connect)
|
|
||||||
end
|
|
||||||
|
|
||||||
should "load the current environment" do
|
|
||||||
Vagrant::Environment.expects(:load!).once.returns(@env)
|
|
||||||
Vagrant::Commands.ssh
|
|
||||||
end
|
|
||||||
|
|
||||||
should "require a persisted VM" do
|
|
||||||
@env.expects(:require_persisted_vm).once
|
|
||||||
Vagrant::Commands.ssh
|
|
||||||
end
|
|
||||||
|
|
||||||
should "connect to SSH" do
|
|
||||||
@env.ssh.expects(:connect).once
|
|
||||||
Vagrant::Commands.ssh
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
context "halt" do
|
|
||||||
should "load the current environment" do
|
|
||||||
Vagrant::Environment.expects(:load!).once.returns(@env)
|
|
||||||
Vagrant::Commands.halt
|
|
||||||
end
|
|
||||||
|
|
||||||
should "require a persisted VM" do
|
|
||||||
@env.expects(:require_persisted_vm).once
|
|
||||||
Vagrant::Commands.halt
|
|
||||||
end
|
|
||||||
|
|
||||||
should "call the `halt` action on the VM" do
|
|
||||||
@persisted_vm.expects(:execute!).with(Vagrant::Actions::VM::Halt).once
|
|
||||||
Vagrant::Commands.halt
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
context "suspend" do
|
|
||||||
setup do
|
|
||||||
@persisted_vm.stubs(:suspend)
|
|
||||||
@persisted_vm.stubs(:saved?).returns(false)
|
|
||||||
end
|
|
||||||
|
|
||||||
should "load the current environment" do
|
|
||||||
Vagrant::Environment.expects(:load!).once.returns(@env)
|
|
||||||
Vagrant::Commands.suspend
|
|
||||||
end
|
|
||||||
|
|
||||||
should "require a persisted VM" do
|
|
||||||
@env.expects(:require_persisted_vm).once
|
|
||||||
Vagrant::Commands.suspend
|
|
||||||
end
|
|
||||||
|
|
||||||
should "suspend the VM" do
|
|
||||||
@persisted_vm.expects(:suspend).once
|
|
||||||
Vagrant::Commands.suspend
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
context "resume" do
|
|
||||||
setup do
|
|
||||||
@persisted_vm.stubs(:resume)
|
|
||||||
@persisted_vm.stubs(:saved?).returns(true)
|
|
||||||
end
|
|
||||||
|
|
||||||
should "load the current environment" do
|
|
||||||
Vagrant::Environment.expects(:load!).once.returns(@env)
|
|
||||||
Vagrant::Commands.resume
|
|
||||||
end
|
|
||||||
|
|
||||||
should "require a persisted VM" do
|
|
||||||
@env.expects(:require_persisted_vm).once
|
|
||||||
Vagrant::Commands.resume
|
|
||||||
end
|
|
||||||
|
|
||||||
should "save the state of the VM" do
|
|
||||||
@persisted_vm.expects(:resume).once
|
|
||||||
Vagrant::Commands.resume
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
context "package" do
|
|
||||||
setup do
|
|
||||||
@persisted_vm.stubs(:package)
|
|
||||||
@persisted_vm.stubs(:powered_off?).returns(true)
|
|
||||||
end
|
|
||||||
|
|
||||||
should "load the current environment" do
|
|
||||||
Vagrant::Environment.expects(:load!).once.returns(@env)
|
|
||||||
Vagrant::Commands.package
|
|
||||||
end
|
|
||||||
|
|
||||||
should "require a persisted vm" do
|
|
||||||
@env.expects(:require_persisted_vm).once
|
|
||||||
Vagrant::Commands.package
|
|
||||||
end
|
|
||||||
|
|
||||||
should "error and exit if the VM is not powered off" do
|
|
||||||
@persisted_vm.stubs(:powered_off?).returns(false)
|
|
||||||
Vagrant::Commands.expects(:error_and_exit).with(:vm_power_off_to_package).once
|
|
||||||
@persisted_vm.expects(:package).never
|
|
||||||
Vagrant::Commands.package
|
|
||||||
end
|
|
||||||
|
|
||||||
should "call package on the persisted VM" do
|
|
||||||
@persisted_vm.expects(:package).once
|
|
||||||
Vagrant::Commands.package
|
|
||||||
end
|
|
||||||
|
|
||||||
should "pass the out path and include_files to the package method" do
|
|
||||||
out_path = mock("out_path")
|
|
||||||
include_files = mock("include_files")
|
|
||||||
@persisted_vm.expects(:package).with(out_path, include_files).once
|
|
||||||
Vagrant::Commands.package(out_path, include_files)
|
|
||||||
end
|
|
||||||
|
|
||||||
should "default to an empty array when not include_files are specified" do
|
|
||||||
out_path = mock("out_path")
|
|
||||||
@persisted_vm.expects(:package).with(out_path, []).once
|
|
||||||
Vagrant::Commands.package(out_path)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
context "box" do
|
|
||||||
setup do
|
|
||||||
Vagrant::Commands.stubs(:box_foo)
|
|
||||||
Vagrant::Commands.stubs(:box_add)
|
|
||||||
Vagrant::Commands.stubs(:box_remove)
|
|
||||||
end
|
|
||||||
|
|
||||||
should "load the environment" do
|
|
||||||
Vagrant::Environment.expects(:load!).once.returns(@env)
|
|
||||||
Vagrant::Commands.box(["add"])
|
|
||||||
end
|
|
||||||
|
|
||||||
should "error and exit if the first argument is not a valid subcommand" do
|
|
||||||
Vagrant::Commands.expects(:error_and_exit).with(:command_box_invalid).once
|
|
||||||
Vagrant::Commands.box(["foo"])
|
|
||||||
end
|
|
||||||
|
|
||||||
should "not error and exit if the first argument is a valid subcommand" do
|
|
||||||
commands = ["add", "remove"]
|
|
||||||
|
|
||||||
commands.each do |command|
|
|
||||||
Vagrant::Commands.expects(:error_and_exit).never
|
|
||||||
Vagrant::Commands.expects("box_#{command}".to_sym).once
|
|
||||||
Vagrant::Commands.box([command])
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
should "forward any additional arguments" do
|
context "up" do
|
||||||
Vagrant::Commands.expects(:box_add).with(@env, 1,2,3).once
|
setup do
|
||||||
Vagrant::Commands.box(["add",1,2,3])
|
@new_vm = mock("vm")
|
||||||
|
@new_vm.stubs(:execute!)
|
||||||
|
|
||||||
|
@env.stubs(:vm).returns(nil)
|
||||||
|
@env.stubs(:require_box)
|
||||||
|
@env.stubs(:create_vm).returns(@new_vm)
|
||||||
|
end
|
||||||
|
|
||||||
|
should "require a box" do
|
||||||
|
@env.expects(:require_box).once
|
||||||
|
@commands.up
|
||||||
|
end
|
||||||
|
|
||||||
|
should "call the up action on VM if it doesn't exist" do
|
||||||
|
@new_vm.expects(:execute!).with(Vagrant::Actions::VM::Up).once
|
||||||
|
@commands.up
|
||||||
|
end
|
||||||
|
|
||||||
|
should "call start on the persisted vm if it exists" do
|
||||||
|
@env.stubs(:vm).returns(@persisted_vm)
|
||||||
|
@persisted_vm.expects(:start).once
|
||||||
|
@env.expects(:create_vm).never
|
||||||
|
@commands.up
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context "down" do
|
||||||
|
setup do
|
||||||
|
@persisted_vm.stubs(:destroy)
|
||||||
|
end
|
||||||
|
|
||||||
|
should "require a persisted VM" do
|
||||||
|
@env.expects(:require_persisted_vm).once
|
||||||
|
@commands.down
|
||||||
|
end
|
||||||
|
|
||||||
|
should "destroy the persisted VM and the VM image" do
|
||||||
|
@persisted_vm.expects(:destroy).once
|
||||||
|
@commands.down
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context "reload" do
|
||||||
|
should "require a persisted VM" do
|
||||||
|
@env.expects(:require_persisted_vm).once
|
||||||
|
@commands.reload
|
||||||
|
end
|
||||||
|
|
||||||
|
should "call the `reload` action on the VM" do
|
||||||
|
@persisted_vm.expects(:execute!).with(Vagrant::Actions::VM::Reload).once
|
||||||
|
@commands.reload
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context "ssh" do
|
||||||
|
setup do
|
||||||
|
@env.ssh.stubs(:connect)
|
||||||
|
end
|
||||||
|
|
||||||
|
should "require a persisted VM" do
|
||||||
|
@env.expects(:require_persisted_vm).once
|
||||||
|
@commands.ssh
|
||||||
|
end
|
||||||
|
|
||||||
|
should "connect to SSH" do
|
||||||
|
@env.ssh.expects(:connect).once
|
||||||
|
@commands.ssh
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context "halt" do
|
||||||
|
should "require a persisted VM" do
|
||||||
|
@env.expects(:require_persisted_vm).once
|
||||||
|
@commands.halt
|
||||||
|
end
|
||||||
|
|
||||||
|
should "call the `halt` action on the VM" do
|
||||||
|
@persisted_vm.expects(:execute!).with(Vagrant::Actions::VM::Halt).once
|
||||||
|
@commands.halt
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context "suspend" do
|
||||||
|
setup do
|
||||||
|
@persisted_vm.stubs(:suspend)
|
||||||
|
@persisted_vm.stubs(:saved?).returns(false)
|
||||||
|
end
|
||||||
|
|
||||||
|
should "require a persisted VM" do
|
||||||
|
@env.expects(:require_persisted_vm).once
|
||||||
|
@commands.suspend
|
||||||
|
end
|
||||||
|
|
||||||
|
should "suspend the VM" do
|
||||||
|
@persisted_vm.expects(:suspend).once
|
||||||
|
@commands.suspend
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context "resume" do
|
||||||
|
setup do
|
||||||
|
@persisted_vm.stubs(:resume)
|
||||||
|
@persisted_vm.stubs(:saved?).returns(true)
|
||||||
|
end
|
||||||
|
|
||||||
|
should "require a persisted VM" do
|
||||||
|
@env.expects(:require_persisted_vm).once
|
||||||
|
@commands.resume
|
||||||
|
end
|
||||||
|
|
||||||
|
should "save the state of the VM" do
|
||||||
|
@persisted_vm.expects(:resume).once
|
||||||
|
@commands.resume
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context "package" do
|
||||||
|
setup do
|
||||||
|
@persisted_vm.stubs(:package)
|
||||||
|
@persisted_vm.stubs(:powered_off?).returns(true)
|
||||||
|
end
|
||||||
|
|
||||||
|
should "require a persisted vm" do
|
||||||
|
@env.expects(:require_persisted_vm).once
|
||||||
|
@commands.package
|
||||||
|
end
|
||||||
|
|
||||||
|
should "error and exit if the VM is not powered off" do
|
||||||
|
@persisted_vm.stubs(:powered_off?).returns(false)
|
||||||
|
@commands.expects(:error_and_exit).with(:vm_power_off_to_package).once
|
||||||
|
@persisted_vm.expects(:package).never
|
||||||
|
@commands.package
|
||||||
|
end
|
||||||
|
|
||||||
|
should "call package on the persisted VM" do
|
||||||
|
@persisted_vm.expects(:package).once
|
||||||
|
@commands.package
|
||||||
|
end
|
||||||
|
|
||||||
|
should "pass the out path and include_files to the package method" do
|
||||||
|
out_path = mock("out_path")
|
||||||
|
include_files = mock("include_files")
|
||||||
|
@persisted_vm.expects(:package).with(out_path, include_files).once
|
||||||
|
@commands.package(out_path, include_files)
|
||||||
|
end
|
||||||
|
|
||||||
|
should "default to an empty array when not include_files are specified" do
|
||||||
|
out_path = mock("out_path")
|
||||||
|
@persisted_vm.expects(:package).with(out_path, []).once
|
||||||
|
@commands.package(out_path)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context "box" do
|
||||||
|
setup do
|
||||||
|
@commands.stubs(:box_foo)
|
||||||
|
@commands.stubs(:box_add)
|
||||||
|
@commands.stubs(:box_remove)
|
||||||
|
end
|
||||||
|
|
||||||
|
should "error and exit if the first argument is not a valid subcommand" do
|
||||||
|
@commands.expects(:error_and_exit).with(:command_box_invalid).once
|
||||||
|
@commands.box(["foo"])
|
||||||
|
end
|
||||||
|
|
||||||
|
should "not error and exit if the first argument is a valid subcommand" do
|
||||||
|
commands = ["add", "remove", "list"]
|
||||||
|
|
||||||
|
commands.each do |command|
|
||||||
|
@commands.expects(:error_and_exit).never
|
||||||
|
@commands.expects("box_#{command}".to_sym).once
|
||||||
|
@commands.box([command])
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
should "forward any additional arguments" do
|
||||||
|
@commands.expects(:box_add).with(@env, 1,2,3).once
|
||||||
|
@commands.box(["add",1,2,3])
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context "box list" do
|
||||||
|
setup do
|
||||||
|
@boxes = ["foo", "bar"]
|
||||||
|
|
||||||
|
Vagrant::Box.stubs(:all).returns(@boxes)
|
||||||
|
@commands.stubs(:wrap_output)
|
||||||
|
end
|
||||||
|
|
||||||
|
should "call all on box and sort the results" do
|
||||||
|
@all = mock("all")
|
||||||
|
@all.expects(:sort).returns(@boxes)
|
||||||
|
Vagrant::Box.expects(:all).with(@env).returns(@all)
|
||||||
|
@commands.box_list(@env)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context "box add" do
|
||||||
|
setup do
|
||||||
|
@name = "foo"
|
||||||
|
@path = "bar"
|
||||||
|
end
|
||||||
|
|
||||||
|
should "execute the add action with the name and path" do
|
||||||
|
Vagrant::Box.expects(:add).with(@env, @name, @path).once
|
||||||
|
@commands.box_add(@env, @name, @path)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context "box remove" do
|
||||||
|
setup do
|
||||||
|
@name = "foo"
|
||||||
|
end
|
||||||
|
|
||||||
|
should "error and exit if the box doesn't exist" do
|
||||||
|
Vagrant::Box.expects(:find).returns(nil)
|
||||||
|
@commands.expects(:error_and_exit).with(:box_remove_doesnt_exist).once
|
||||||
|
@commands.box_remove(@env, @name)
|
||||||
|
end
|
||||||
|
|
||||||
|
should "call destroy on the box if it exists" do
|
||||||
|
@box = mock("box")
|
||||||
|
Vagrant::Box.expects(:find).with(@env, @name).returns(@box)
|
||||||
|
@box.expects(:destroy).once
|
||||||
|
@commands.box_remove(@env, @name)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context "box list" do
|
context "class methods" do
|
||||||
setup do
|
context "init" do
|
||||||
@boxes = ["foo", "bar"]
|
setup do
|
||||||
|
@file = mock("file")
|
||||||
|
@file.stubs(:write)
|
||||||
|
File.stubs(:open).yields(@file)
|
||||||
|
@rootfile_path = File.join(Dir.pwd, Vagrant::Environment::ROOTFILE_NAME)
|
||||||
|
|
||||||
Vagrant::Box.stubs(:all).returns(@boxes)
|
Vagrant::Util::TemplateRenderer.stubs(:render)
|
||||||
Vagrant::Commands.stubs(:puts)
|
end
|
||||||
|
|
||||||
|
should "error and exit if a rootfile already exists" do
|
||||||
|
File.expects(:exist?).with(@rootfile_path).returns(true)
|
||||||
|
Vagrant::Commands.expects(:error_and_exit).with(:rootfile_already_exists).once
|
||||||
|
Vagrant::Commands.init
|
||||||
|
end
|
||||||
|
|
||||||
|
should "write to the rootfile path using the template renderer" do
|
||||||
|
result = "foo"
|
||||||
|
Vagrant::Util::TemplateRenderer.expects(:render).returns(result).once
|
||||||
|
@file.expects(:write).with(result).once
|
||||||
|
File.expects(:open).with(@rootfile_path, 'w+').yields(@file)
|
||||||
|
|
||||||
|
Vagrant::Commands.init
|
||||||
|
end
|
||||||
|
|
||||||
|
should "use the given base box if given" do
|
||||||
|
box = "zooo"
|
||||||
|
Vagrant::Util::TemplateRenderer.expects(:render).with(Vagrant::Environment::ROOTFILE_NAME, :default_box => box)
|
||||||
|
Vagrant::Commands.init(box)
|
||||||
|
end
|
||||||
|
|
||||||
|
should "use the default `base` if no box is given" do
|
||||||
|
Vagrant::Util::TemplateRenderer.expects(:render).with(Vagrant::Environment::ROOTFILE_NAME, :default_box => "base")
|
||||||
|
Vagrant::Commands.init
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
should "call all on box and sort the results" do
|
context "executing commands in the current environment" do
|
||||||
@all = mock("all")
|
should "load the environment then send the command to the commands instance" do
|
||||||
@all.expects(:sort).returns(@boxes)
|
method = :foo
|
||||||
Vagrant::Box.expects(:all).with(@env).returns(@all)
|
args = [1,2,3]
|
||||||
Vagrant::Commands.box_list(@env)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
context "box add" do
|
Vagrant::Environment.expects(:load!).returns(@env)
|
||||||
setup do
|
@env.commands.expects(:send).with(method, *args).once
|
||||||
@name = "foo"
|
Vagrant::Commands.execute(method, *args)
|
||||||
@path = "bar"
|
end
|
||||||
end
|
|
||||||
|
|
||||||
should "execute the add action with the name and path" do
|
|
||||||
Vagrant::Box.expects(:add).with(@env, @name, @path).once
|
|
||||||
Vagrant::Commands.box_add(@env, @name, @path)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
context "box remove" do
|
|
||||||
setup do
|
|
||||||
@name = "foo"
|
|
||||||
end
|
|
||||||
|
|
||||||
should "error and exit if the box doesn't exist" do
|
|
||||||
Vagrant::Box.expects(:find).returns(nil)
|
|
||||||
Vagrant::Commands.expects(:error_and_exit).with(:box_remove_doesnt_exist).once
|
|
||||||
Vagrant::Commands.box_remove(@env, @name)
|
|
||||||
end
|
|
||||||
|
|
||||||
should "call destroy on the box if it exists" do
|
|
||||||
@box = mock("box")
|
|
||||||
Vagrant::Box.expects(:find).with(@env, @name).returns(@box)
|
|
||||||
@box.expects(:destroy).once
|
|
||||||
Vagrant::Commands.box_remove(@env, @name)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -146,6 +146,7 @@ class EnvironmentTest < Test::Unit::TestCase
|
||||||
@env.expects(:load_vm!).once.in_sequence(call_seq)
|
@env.expects(:load_vm!).once.in_sequence(call_seq)
|
||||||
@env.expects(:load_ssh!).once.in_sequence(call_seq)
|
@env.expects(:load_ssh!).once.in_sequence(call_seq)
|
||||||
@env.expects(:load_active_list!).once.in_sequence(call_seq)
|
@env.expects(:load_active_list!).once.in_sequence(call_seq)
|
||||||
|
@env.expects(:load_commands!).once.in_sequence(call_seq)
|
||||||
assert_equal @env, @env.load!
|
assert_equal @env, @env.load!
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -424,6 +425,19 @@ class EnvironmentTest < Test::Unit::TestCase
|
||||||
assert_equal active_list, @env.active_list
|
assert_equal active_list, @env.active_list
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context "loading the commands" do
|
||||||
|
setup do
|
||||||
|
@env = mock_environment
|
||||||
|
end
|
||||||
|
|
||||||
|
should "initialize the Commands object with the given environment" do
|
||||||
|
commands = mock("commands")
|
||||||
|
Vagrant::Commands.expects(:new).with(@env).returns(commands)
|
||||||
|
@env.load_commands!
|
||||||
|
assert_equal commands, @env.commands
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context "requiring properties" do
|
context "requiring properties" do
|
||||||
|
|
Loading…
Reference in New Issue