vaguerent/test/unit_legacy/vagrant/action/vm/package_vagrantfile_test.rb
2011-12-03 15:44:08 -08:00

47 lines
1.5 KiB
Ruby

require "test_helper"
class PackageVagrantfileVMActionTest < Test::Unit::TestCase
setup do
@klass = Vagrant::Action::VM::PackageVagrantfile
@app, @env = action_env
@vm = mock("vm")
@env["vm"] = @vm
@env["export.temp_dir"] = "foo"
@internal_vm = mock("internal")
@vm.stubs(:vm).returns(@internal_vm)
@instance = @klass.new(@app, @env)
end
context "calling" do
should "create the vagrantfile then continue chain" do
seq = sequence("sequence")
@instance.expects(:create_vagrantfile).in_sequence(seq)
@app.expects(:call).with(@env).in_sequence(seq)
@instance.call(@env)
end
end
context "creating vagrantfile" do
setup do
@network_adapter = mock("nic")
@network_adapter.stubs(:mac_address).returns("mac_address")
@internal_vm.stubs(:network_adapters).returns([@network_adapter])
end
should "write the rendered vagrantfile to temp_path Vagrantfile" do
f = mock("file")
rendered = mock("rendered")
File.expects(:open).with(File.join(@env["export.temp_dir"], "Vagrantfile"), "w").yields(f)
Vagrant::Util::TemplateRenderer.expects(:render).returns(rendered).with("package_Vagrantfile", {
:base_mac => @internal_vm.network_adapters.first.mac_address
})
f.expects(:write).with(rendered)
@instance.create_vagrantfile
end
end
end