From e2f0d2ebb7e6d94679fe8a2b0a736edb52a7295f Mon Sep 17 00:00:00 2001 From: Gilles Cornu Date: Sun, 22 Nov 2015 20:48:21 +0100 Subject: [PATCH] provisioners/ansible: add a unit test for winrm ref #5086 --- .../provisioners/ansible/provisioner_test.rb | 37 ++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/test/unit/plugins/provisioners/ansible/provisioner_test.rb b/test/unit/plugins/provisioners/ansible/provisioner_test.rb index 94626389a..d937dacff 100644 --- a/test/unit/plugins/provisioners/ansible/provisioner_test.rb +++ b/test/unit/plugins/provisioners/ansible/provisioner_test.rb @@ -129,7 +129,7 @@ VF } end - it "enables '#{expected_transport_mode}' transport mode" do + it "enables '#{expected_transport_mode}' as default transport mode" do expect(Vagrant::Util::Subprocess).to receive(:execute).with { |*args| index = args.rindex("--connection=#{expected_transport_mode}") expect(index).to be > 0 @@ -373,6 +373,41 @@ VF end end + context "with winrm communicator" do + + let(:iso_winrm_env) do + env = isolated_environment + env.vagrantfile <<-VF +Vagrant.configure("2") do |config| + config.winrm.username = 'winner' + config.winrm.password = 'winword' + config.winrm.transport = :ssl + + config.vm.define :machine1 do |machine| + machine.vm.box = "winbox" + machine.vm.communicator = :winrm + end +end +VF + env.create_vagrant_env + end + + let(:machine) { iso_winrm_env.machine(iso_winrm_env.machine_names[0], :dummy) } + + it_should_set_arguments_and_environment_variables + + it "generates an inventory with winrm connection settings" do + + expect(Vagrant::Util::Subprocess).to receive(:execute).with { |*args| + expect(config.inventory_path).to be_nil + expect(File.exists?(generated_inventory_file)).to be_true + inventory_content = File.read(generated_inventory_file) + + expect(inventory_content).to include("machine1 ansible_connection=winrm ansible_ssh_host=127.0.0.1 ansible_ssh_port=55986 ansible_ssh_user='winner' ansible_ssh_pass='winword'\n") + } + end + end + describe "with inventory_path option" do before do config.inventory_path = existing_file