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

46 lines
1.2 KiB
Ruby

require "test_helper"
class DiscardStateVMActionTest < Test::Unit::TestCase
setup do
@klass = Vagrant::Action::VM::DiscardState
@app, @env = action_env
@vm = mock("vm")
@env["vm"] = @vm
@internal_vm = mock("internal")
@vm.stubs(:vm).returns(@internal_vm)
@instance = @klass.new(@app, @env)
end
context "calling" do
setup do
@vm.stubs(:created?).returns(true)
@internal_vm.stubs(:saved?).returns(false)
end
should "do nothing if the VM is not created" do
@vm.stubs(:created?).returns(false)
@internal_vm.expects(:discard_state).never
@app.expects(:call).with(@env).once
@instance.call(@env)
end
should "do nothing if not saved and continue chain" do
@internal_vm.expects(:saved?).returns(false)
@internal_vm.expects(:discard_state).never
@app.expects(:call).with(@env).once
@instance.call(@env)
end
should "discard state and continue chain" do
seq = sequence("sequence")
@internal_vm.expects(:saved?).returns(true).in_sequence(seq)
@internal_vm.expects(:discard_state).in_sequence(seq)
@app.expects(:call).with(@env).once.in_sequence(seq)
@instance.call(@env)
end
end
end