`setup_unison` implemented on shared folder action

This commit is contained in:
Mitchell Hashimoto 2010-06-20 02:24:07 -07:00
parent c7bbfcc5a1
commit b97c257904
2 changed files with 38 additions and 1 deletions

View File

@ -54,7 +54,14 @@ module Vagrant
def setup_unison def setup_unison
return if unison_folders.empty? return if unison_folders.empty?
# TODO logger.info "Setting up unison crontab..."
runner.ssh.execute do |ssh|
runner.system.prepare_unison(ssh)
unison_folders.each do |name, data|
runner.system.create_unison(ssh, data)
end
end
end end
def clear_shared_folders def clear_shared_folders

View File

@ -164,6 +164,36 @@ class SharedFoldersActionTest < Test::Unit::TestCase
end end
context "setting up unison" do context "setting up unison" do
setup do
@ssh = mock("ssh")
@runner.ssh.stubs(:execute).yields(@ssh)
@folders = stub_shared_folders do |config|
config.vm.share_folder("foo", "bar", "baz", :sync => true)
config.vm.share_folder("bar", "foo", "baz")
end
end
should "do nothing if unison folders is empty" do
@action.stubs(:unison_folders).returns({})
@runner.ssh.expects(:execute).never
@action.setup_unison
end
should "prepare unison then create for each folder" do
seq = sequence("unison seq")
@runner.system.expects(:prepare_unison).with(@ssh).once.in_sequence(seq)
@folders.each do |name, data|
if data[:sync]
@runner.system.expects(:create_unison).with do |ssh, opts|
assert_equal @ssh, ssh
assert_equal data, opts
true
end
end
end
@action.setup_unison
end
end end
end end